2018-11-20 11:57:51 +01:00
|
|
|
# Preview all emails at http://localhost:3000/rails/mailers/notification_mailer
|
|
|
|
|
2018-11-20 11:50:25 +01:00
|
|
|
# A Notification is attached as a Comment to the relevant discussion,
|
|
|
|
# then sent by email to the user.
|
|
|
|
#
|
|
|
|
# The subject and body of a Notification can be customized by each demarche.
|
2018-11-20 11:57:51 +01:00
|
|
|
#
|
2015-12-15 11:02:07 +01:00
|
|
|
class NotificationMailer < ApplicationMailer
|
2019-07-22 15:49:11 +02:00
|
|
|
include ActionView::Helpers::SanitizeHelper
|
|
|
|
|
2019-04-11 12:23:40 +02:00
|
|
|
helper ServiceHelper
|
|
|
|
|
2019-07-22 15:49:11 +02:00
|
|
|
layout 'mailers/notifications_layout'
|
|
|
|
|
2018-05-31 00:04:06 +02:00
|
|
|
def send_dossier_received(dossier)
|
|
|
|
send_notification(dossier, dossier.procedure.received_mail_template)
|
|
|
|
end
|
|
|
|
|
2018-05-25 23:08:47 +02:00
|
|
|
def send_initiated_notification(dossier)
|
|
|
|
send_notification(dossier, dossier.procedure.initiated_mail_template)
|
|
|
|
end
|
2017-10-11 15:36:40 +02:00
|
|
|
|
2018-05-25 23:08:47 +02:00
|
|
|
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)
|
2017-10-11 15:36:40 +02:00
|
|
|
end
|
|
|
|
|
2018-05-31 00:04:06 +02:00
|
|
|
private
|
|
|
|
|
2018-05-25 23:08:47 +02:00
|
|
|
def send_notification(dossier, mail_template)
|
2018-05-31 08:56:32 +02:00
|
|
|
email = dossier.user.email
|
2018-05-25 23:08:47 +02:00
|
|
|
|
2018-05-31 08:53:27 +02:00
|
|
|
subject = mail_template.subject_for_dossier(dossier)
|
|
|
|
body = mail_template.body_for_dossier(dossier)
|
2018-05-25 23:08:47 +02:00
|
|
|
|
2018-05-31 08:53:27 +02:00
|
|
|
create_commentaire_for_notification(dossier, subject, body)
|
2018-05-30 17:12:06 +02:00
|
|
|
|
2019-03-21 15:39:37 +01:00
|
|
|
@dossier = dossier
|
|
|
|
@service = dossier.procedure.service
|
2019-07-17 14:41:37 +02:00
|
|
|
@logo_url = attach_logo(dossier.procedure)
|
2019-07-22 15:49:11 +02:00
|
|
|
@rendered_template = sanitize(body)
|
2019-03-21 15:39:37 +01:00
|
|
|
|
2019-07-22 15:49:11 +02:00
|
|
|
mail(subject: subject, to: email, template_name: 'send_notification')
|
2018-05-25 23:08:47 +02:00
|
|
|
end
|
|
|
|
|
2018-05-31 08:53:27 +02:00
|
|
|
def create_commentaire_for_notification(dossier, subject, body)
|
2018-11-29 15:00:26 +01:00
|
|
|
params = { body: ["[#{subject}]", body].join("<br><br>") }
|
|
|
|
commentaire = CommentaireService.build_with_email(CONTACT_EMAIL, dossier, params)
|
|
|
|
commentaire.save!
|
2017-05-11 18:07:37 +02:00
|
|
|
end
|
2015-12-15 11:02:07 +01:00
|
|
|
end
|