demarches-normaliennes/app/mailers/notification_mailer.rb

68 lines
2 KiB
Ruby
Raw Normal View History

# Preview all emails at http://localhost:3000/rails/mailers/notification_mailer
# 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.
#
2015-12-15 11:02:07 +01:00
class NotificationMailer < ApplicationMailer
include ActionView::Helpers::SanitizeHelper
2021-05-01 12:20:24 +02:00
before_action :prevent_delivery_to_deleted_users
helper ServiceHelper
2019-07-22 15:21:05 +02:00
helper MailerHelper
layout 'mailers/notifications_layout'
default from: NO_REPLY_EMAIL
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
2021-05-01 12:20:24 +02:00
def prevent_delivery_to_deleted_users
!@dossier.user_deleted?
end
def send_notification(dossier, mail_template)
2021-05-01 12:20:24 +02:00
email = dossier.user_email_for(:notification)
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
@service = dossier.procedure.service
@logo_url = attach_logo(dossier.procedure)
@rendered_template = sanitize(body)
2019-07-22 15:21:05 +02:00
@actions = mail_template.actions_for_dossier(dossier)
mail(subject: subject, to: email, template_name: 'send_notification')
end
2018-05-31 08:53:27 +02:00
def create_commentaire_for_notification(dossier, subject, body)
params = { body: ["[#{subject}]", body].join("<br><br>") }
commentaire = CommentaireService.build_with_email(CONTACT_EMAIL, dossier, params)
commentaire.save!
end
2015-12-15 11:02:07 +01:00
end