demarches-normaliennes/app/mailers/notification_mailer.rb

68 lines
1.8 KiB
Ruby
Raw Normal View History

2015-12-15 11:02:07 +01:00
class NotificationMailer < ApplicationMailer
2018-05-31 00:04:06 +02:00
def new_answer(dossier)
2018-05-31 15:50:13 +02:00
subject = "Nouveau message pour votre dossier nº #{dossier.id}"
send_mail(dossier, subject)
end
def send_draft_notification(dossier)
2018-05-31 15:50:13 +02:00
subject = "Retrouvez votre brouillon pour la démarche \"#{dossier.procedure.libelle}\""
send_mail(dossier, subject)
end
2018-05-31 00:04:06 +02:00
def send_dossier_received(dossier)
send_notification(dossier, dossier.procedure.received_mail_template)
end
def send_initiated_notification(dossier)
send_notification(dossier, dossier.procedure.initiated_mail_template)
end
def send_closed_notification(dossier)
send_notification(dossier, dossier.procedure.closed_mail_template)
end
def send_refused_notification(dossier)
send_notification(dossier, dossier.procedure.refused_mail_template)
end
def send_without_continuation_notification(dossier)
send_notification(dossier, dossier.procedure.without_continuation_mail_template)
end
2018-05-31 00:04:06 +02:00
private
def send_mail(dossier, subject)
2018-05-31 08:54:16 +02:00
@dossier = dossier
2018-05-31 08:56:32 +02:00
email = dossier.user.email
2018-05-31 00:04:06 +02:00
2018-05-31 08:56:32 +02:00
mail(subject: subject, to: email)
2018-05-31 00:04:06 +02:00
end
2015-12-15 11:41:50 +01:00
def send_notification(dossier, mail_template)
2018-05-31 08:56:32 +02:00
email = dossier.user.email
2018-05-31 08:53:27 +02:00
subject = mail_template.subject_for_dossier(dossier)
body = mail_template.body_for_dossier(dossier)
2018-05-31 08:53:27 +02:00
create_commentaire_for_notification(dossier, subject, body)
2018-05-30 17:12:06 +02:00
@dossier = dossier
mail(subject: subject, to: email) do |format|
# rubocop:disable Rails/OutputSafety
format.html { render(html: body.html_safe, layout: 'mailers/notification') }
# rubocop:enable Rails/OutputSafety
end
end
2018-05-31 08:53:27 +02:00
def create_commentaire_for_notification(dossier, subject, body)
Commentaire.create(
2018-05-31 08:53:27 +02:00
dossier: dossier,
2018-05-31 15:45:25 +02:00
email: CONTACT_EMAIL,
2018-05-31 08:53:27 +02:00
body: ["[#{subject}]", body].join("<br><br>")
)
end
2015-12-15 11:02:07 +01:00
end