129 lines
5.1 KiB
Ruby
129 lines
5.1 KiB
Ruby
class Mailbot < ActionMailer::Base
|
|
default from: "no-reply@example.com"
|
|
|
|
def registration_mail(conference, user)
|
|
# Send default template if subject or template is blank
|
|
if conference.email_settings.registration_subject.blank? ||
|
|
conference.email_settings.registration_email_template.blank?
|
|
subject = "Registration for #{conference.title}"
|
|
template = 'registration_default_template'
|
|
send_default_mail(template,
|
|
subject,
|
|
conference,
|
|
user)
|
|
else
|
|
build_email(conference,
|
|
user.email,
|
|
conference.email_settings.registration_subject,
|
|
conference.email_settings.generate_registration_email(conference, user))
|
|
end
|
|
end
|
|
|
|
def acceptance_mail(event)
|
|
conference = event.conference
|
|
user = event.submitter
|
|
|
|
# Send default template if subject or template is blank
|
|
if conference.email_settings.accepted_subject.blank? ||
|
|
conference.email_settings.accepted_email_template.blank?
|
|
subject = 'Your proposal has been accepted'
|
|
template = 'accepted_default_template'
|
|
send_default_mail(template,
|
|
subject,
|
|
conference,
|
|
user,
|
|
event)
|
|
else
|
|
build_email(conference,
|
|
user.email,
|
|
conference.email_settings.accepted_subject,
|
|
conference.email_settings.generate_accepted_email(event))
|
|
end
|
|
end
|
|
|
|
def rejection_mail(event)
|
|
conference = event.conference
|
|
user = event.submitter
|
|
|
|
# Send default template if subject or template is blank
|
|
if conference.email_settings.rejected_subject.blank? ||
|
|
conference.email_settings.rejected_email_template.blank?
|
|
subject = 'Your proposal has been rejected'
|
|
template = 'rejected_default_template'
|
|
send_default_mail(template,
|
|
subject,
|
|
conference,
|
|
user,
|
|
event)
|
|
else
|
|
build_email(conference,
|
|
user.email,
|
|
conference.email_settings.rejected_subject,
|
|
conference.email_settings.generate_rejected_email(event))
|
|
end
|
|
end
|
|
|
|
def confirm_reminder_mail(event)
|
|
conference = event.conference
|
|
user = event.submitter
|
|
|
|
# Send default template if subject or template is blank
|
|
if conference.email_settings.confirmed_without_registration_subject.blank? ||
|
|
conference.email_settings.confirmed_email_template.blank?
|
|
subject = "Your are not registered for #{conference.title}"
|
|
template = 'confirmed_default_template'
|
|
send_default_mail(template,
|
|
subject,
|
|
conference,
|
|
user,
|
|
event)
|
|
else
|
|
build_email(conference,
|
|
user.email,
|
|
conference.email_settings.confirmed_without_registration_subject,
|
|
conference.email_settings.confirmed_but_not_registered_email(event))
|
|
end
|
|
end
|
|
|
|
def conference_date_update_mail(conference,dates)
|
|
subject = conference.email_settings.updated_conference_dates_subject.blank? ? "#{conference.title} Dates Updated" : conference.email_settings.updated_conference_dates_subject
|
|
partial = "#{conference.title}\n New Dates : #{dates}\n For more information visit #{Rails.application.routes.url_helpers.conference_path(conference.short_title, host: CONFIG['url_for_emails'])}"
|
|
body = conference.email_settings.updated_conference_dates_template.blank? ? "#{partial}" : "#{conference.email_settings.updated_conference_dates_template}\n #{partial}"
|
|
conference.registrations.each do |u|
|
|
build_email(conference, u.user.email, subject, body)
|
|
end
|
|
end
|
|
|
|
def conference_registration_date_update_mail(conference, dates)
|
|
subject = conference.email_settings.updated_conference_registration_dates_subject.blank? ? "#{conference.title} Registration Dates Updated" : conference.email_settings.updated_conference_registration_dates_subject
|
|
partial = "#{conference.title}\n New Registration Dates : #{dates}\n For more information visit #{Rails.application.routes.url_helpers.conference_path(conference.short_title, host: CONFIG['url_for_emails'])}"
|
|
body = conference.email_settings.updated_conference_registration_dates_template.blank? ? "#{partial}" : "#{conference.email_settings.updated_conference_dates_template}\n #{partial}"
|
|
conference.registrations.each do |u|
|
|
build_email(conference, u.user.email, subject, body)
|
|
end
|
|
end
|
|
|
|
def build_email(conference, to, subject, body)
|
|
mail(:to => to,
|
|
:from => conference.contact_email,
|
|
:reply_to => conference.contact_email,
|
|
:subject => subject,
|
|
:body => body)
|
|
end
|
|
|
|
|
|
def send_default_mail(template, subject, conference, user, event = nil)
|
|
@name = user.name
|
|
@conference = conference
|
|
if event
|
|
@event = event
|
|
end
|
|
|
|
mail(to: user.email,
|
|
from: conference.contact_email,
|
|
reply_to: conference.contact_email,
|
|
subject: subject,
|
|
template_name: template,
|
|
)
|
|
end
|
|
end
|