61 lines
1.6 KiB
Ruby
61 lines
1.6 KiB
Ruby
class NotificationMailer < ApplicationMailer
|
||
def new_answer(dossier)
|
||
subject = "Nouveau message pour votre dossier nº #{dossier.id}"
|
||
|
||
send_mail(dossier, subject)
|
||
end
|
||
|
||
def send_draft_notification(dossier)
|
||
subject = "Retrouvez votre brouillon pour la démarche \"#{dossier.procedure.libelle}\""
|
||
|
||
send_mail(dossier, subject)
|
||
end
|
||
|
||
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
|
||
|
||
private
|
||
|
||
def send_mail(dossier, subject)
|
||
@dossier = dossier
|
||
email = dossier.user.email
|
||
|
||
mail(subject: subject, to: email)
|
||
end
|
||
|
||
def send_notification(dossier, mail_template)
|
||
email = dossier.user.email
|
||
|
||
subject = mail_template.subject_for_dossier(dossier)
|
||
body = mail_template.body_for_dossier(dossier)
|
||
|
||
create_commentaire_for_notification(dossier, subject, body)
|
||
|
||
mail(subject: subject, to: email) { |format| format.html { body } }
|
||
end
|
||
|
||
def create_commentaire_for_notification(dossier, subject, body)
|
||
Commentaire.create(
|
||
dossier: dossier,
|
||
email: CONTACT_EMAIL,
|
||
body: ["[#{subject}]", body].join("<br><br>")
|
||
)
|
||
end
|
||
end
|