discourse/app/jobs/scheduled/activation_reminder_emails.rb
Krzysztof Kotlarek 427d54b2b0 DEV: Upgrading Discourse to Zeitwerk (#8098)
Zeitwerk simplifies working with dependencies in dev and makes it easier reloading class chains. 

We no longer need to use Rails "require_dependency" anywhere and instead can just use standard 
Ruby patterns to require files.

This is a far reaching change and we expect some followups here.
2019-10-02 14:01:53 +10:00

25 lines
806 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)
Jobs.enqueue(:user_email,
type: :activation_reminder,
user_id: user.id,
email_token: email_token.token)
end
end
end
end