class NotificationMailer < ApplicationMailer default to: Proc.new { @user.email } after_action :create_commentaire_for_notification, only: [:send_notification, :send_dossier_received] def send_dossier_received(dossier_id) dossier = Dossier.find(dossier_id) send_notification(dossier, dossier.procedure.received_mail_template) end def send_notification(dossier, mail_template, attestation = nil) vars_mailer(dossier) @object = mail_template.object_for_dossier dossier @body = mail_template.body_for_dossier dossier if attestation.present? attachments['attestation.pdf'] = attestation end mail(subject: @object) { |format| format.html { @body } } end def send_draft_notification(dossier) vars_mailer(dossier) @object = "Retrouvez votre brouillon pour la démarche : #{dossier.procedure.libelle}" mail(subject: @object) end def new_answer(dossier) send_mail dossier, "Nouveau message pour votre dossier TPS nº #{dossier.id}" end private def create_commentaire_for_notification Commentaire.create( dossier: @dossier, email: I18n.t("dynamics.contact_email"), body: ["[#{@object}]", @body].join("<br><br>") ) end def vars_mailer(dossier) @dossier = dossier @user = dossier.user end def send_mail(dossier, subject) vars_mailer dossier mail(subject: subject) end end