Use ActiveJob to send conference date update mails

This commit is contained in:
Henne Vogelsang 2016-04-21 15:08:00 +02:00
parent 21280cd9d8
commit e758c30292
3 changed files with 17 additions and 8 deletions

View file

@ -85,7 +85,7 @@ module Admin
send_mail_on_conf_update = @conference.notify_on_dates_changed?
if @conference.update_attributes(conference_params)
Mailbot.conference_date_update_mail(@conference).deliver_later if send_mail_on_conf_update
ConferenceDateUpdateMailJob.perform_later(@conference) if send_mail_on_conf_update
redirect_to edit_admin_conference_path(id: @conference.short_title),
notice: 'Conference was successfully updated.'
else

View file

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

View file

@ -35,13 +35,13 @@ class Mailbot < ActionMailer::Base
conference.email_settings.generate_event_mail(event, conference.email_settings.confirmed_without_registration_body))
end
def conference_date_update_mail(conference)
User.joins(:subscriptions).merge(conference.subscriptions).each do |user|
build_email(conference,
user.email,
conference.email_settings.conference_dates_updated_subject,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_dates_updated_body))
end
def conference_date_update_mail(conference, user)
mail(to: user.email,
from: conference.contact.email,
subject: conference.email_settings.conference_dates_updated_subject,
body: conference.email_settings.generate_email_on_conf_updates(conference,
user,
conference.email_settings.conference_dates_updated_body))
end
def conference_registration_date_update_mail(conference)