docbrown/app/services/email_digest.rb

30 lines
839 B
Ruby

class EmailDigest
def self.send_periodic_digest_email(users = [])
new(users).send_periodic_digest_email
end
def initialize(users = [])
@users = users.empty? ? get_users : users
end
def send_periodic_digest_email
@users.select(:id).in_batches do |batch|
batch.each do |user|
# Temporary
# @sre:mstruve This is temporary until we have an efficient way to handle this job
# for our large DEV community. Smaller Forems should be able to handle it no problem
if SiteConfig.community_name == "DEV"
Emails::SendUserDigestWorker.new.perform(user.id)
else
Emails::SendUserDigestWorker.perform_async(user.id)
end
end
end
end
private
def get_users
User.registered.where(email_digest_periodic: true).where.not(email: "")
end
end