Added emails for new users who arent PRO
• Added: - emails for new users who arent PRO
This commit is contained in:
21
app/workers/introduce_account_pro_worker.rb
Normal file
21
app/workers/introduce_account_pro_worker.rb
Normal file
@@ -0,0 +1,21 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class IntroduceAccountProWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options queue: 'mailers', retry: 2
|
||||
|
||||
attr_reader :user
|
||||
|
||||
def perform(acct_id, date_range)
|
||||
@acct = Account.find(acct_id)
|
||||
deliver_email(date_range)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def deliver_email(date_range)
|
||||
UserMailer.introduce_pro(@acct.user, date_range).deliver_now!
|
||||
@acct.user.touch(:last_emailed_at)
|
||||
end
|
||||
end
|
||||
28
app/workers/scheduler/introduce_pro_scheduler.rb
Normal file
28
app/workers/scheduler/introduce_pro_scheduler.rb
Normal file
@@ -0,0 +1,28 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class Scheduler::IntroduceProScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options retry: 1
|
||||
|
||||
def perform
|
||||
new_accounts(8.days.ago, 7.days.ago).find_each do |acct|
|
||||
IntroduceAccountProWorker.perform_async(acct.id, '7')
|
||||
end
|
||||
|
||||
new_accounts(16.days.ago, 15.days.ago).find_each do |acct|
|
||||
IntroduceAccountProWorker.perform_async(acct.id, '15')
|
||||
end
|
||||
|
||||
new_accounts(31.days.ago, 30.days.ago).find_each do |acct|
|
||||
IntroduceAccountProWorker.perform_async(acct.id, '30')
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def new_accounts(start_date, end_date)
|
||||
Account.where('is_pro=FALSE AND pro_expires_at IS NULL AND created_at BETWEEN ? AND ?', start_date, end_date)
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user