discourse/app/jobs/scheduled/activation_reminder_emails.rb

30 lines
893 B
Ruby

# frozen_string_literal: true
module Jobs
class ActivationReminderEmails < ::Jobs::Scheduled
every 2.hours
def execute(args)
User
.joins(
"LEFT JOIN user_custom_fields ON users.id = user_id AND user_custom_fields.name = 'activation_reminder'",
)
.where(active: false, staged: false, user_custom_fields: { value: nil })
.where("users.created_at BETWEEN ? AND ?", 3.days.ago, 2.days.ago)
.find_each do |user|
user.custom_fields["activation_reminder"] = true
user.save_custom_fields
email_token =
user.email_tokens.create!(email: user.email, scope: EmailToken.scopes[:signup])
::Jobs.enqueue(
:user_email,
type: "activation_reminder",
user_id: user.id,
email_token: email_token.token,
)
end
end
end
end