1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-11 22:24:21 +01:00
fab-manager/app/mailers/notifications_mailer.rb

63 lines
2.2 KiB
Ruby

# frozen_string_literal: true
# Handle most of the emails sent by the platform. Triggered by notifications
class NotificationsMailer < NotifyWith::NotificationsMailer
default from: ->(*) { Setting.get('email_from') }
layout 'notifications_mailer'
helper :application
def send_mail_by(notification)
@notification = notification
@recipient = notification.receiver
@attached_object = notification.attached_object
unless respond_to?(notification.notification_type)
class_eval %{
def #{notification.notification_type}
mail to: @recipient.email,
subject: t('notifications_mailer.#{notification.notification_type}.subject'),
template_name: '#{notification.notification_type}',
content_type: 'text/html'
end
}, __FILE__, __LINE__ - 7
end
send(notification.notification_type)
rescue StandardError => e
Rails.logger.error "[NotificationsMailer] notification cannot be sent: #{e}"
end
def helpers
ActionController::Base.helpers
end
def notify_user_when_invoice_ready
attachments[@attached_object.filename] = File.read(@attached_object.file)
mail(to: @recipient.email,
subject: t('notifications_mailer.notify_member_invoice_ready.subject'),
template_name: 'notify_member_invoice_ready')
end
def notify_user_when_avoir_ready
attachments[@attached_object.filename] = File.read(@attached_object.file)
mail(to: @recipient.email,
subject: t('notifications_mailer.notify_member_avoir_ready.subject'),
template_name: 'notify_member_avoir_ready')
end
def notify_user_when_payment_schedule_ready
attachments[@attached_object.filename] = File.read(@attached_object.file)
mail(to: @recipient.email,
subject: t('notifications_mailer.notify_member_payment_schedule_ready.subject'),
template_name: 'notify_member_payment_schedule_ready')
end
def notify_member_create_reservation
attachments[@attached_object.ics_filename] = @attached_object.to_ics.encode(Encoding::UTF_8)
mail(to: @recipient.email,
subject: t('notifications_mailer.notify_member_create_reservation.subject'),
template_name: 'notify_member_create_reservation')
end
end