Use ActiveJob to send schedule update mails

This commit is contained in:
Henne Vogelsang 2016-04-21 16:16:16 +02:00
parent 2ea7bda639
commit 82e356dde0
3 changed files with 17 additions and 8 deletions

View file

@ -14,7 +14,7 @@ module Admin
send_mail_on_schedule_public = @program.notify_on_schedule_public? send_mail_on_schedule_public = @program.notify_on_schedule_public?
if @program.update_attributes(program_params) if @program.update_attributes(program_params)
Mailbot.send_on_schedule_public(@conference).deliver_later if send_mail_on_schedule_public ConferenceScheduleUpdateMailJob.perform_later(@conference) if send_mail_on_schedule_public
redirect_to admin_conference_program_path(@conference.short_title), redirect_to admin_conference_program_path(@conference.short_title),
notice: 'The program was successfully updated.' notice: 'The program was successfully updated.'
else else

View file

@ -0,0 +1,9 @@
class ConferenceScheduleUpdateMailJob < ActiveJob::Base
queue_as :default
def perform(conference)
conference.subscriptions.each do |subscription|
Mailbot.conference_schedule_update_mail(conference, subscription.user).deliver_now
end
end
end

View file

@ -62,13 +62,13 @@ class Mailbot < ActionMailer::Base
conference.email_settings.venue_updated_body)) conference.email_settings.venue_updated_body))
end end
def send_on_schedule_public(conference) def conference_schedule_update_mail(conference, user)
User.joins(:subscriptions).merge(conference.subscriptions).each do |user| mail(to: user.email,
build_email(conference, from: conference.contact.email,
user.email, subject: conference.email_settings.program_schedule_public_subject,
conference.email_settings.program_schedule_public_subject, body: conference.email_settings.generate_email_on_conf_updates(conference,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.program_schedule_public_body)) user,
end conference.email_settings.program_schedule_public_body))
end end
def send_on_cfp_dates_updates(conference) def send_on_cfp_dates_updates(conference)