2019-03-13 17:59:33 +01:00
|
|
|
class NotificationService
|
|
|
|
class << self
|
2019-08-06 11:02:54 +02:00
|
|
|
def send_instructeur_email_notification
|
|
|
|
Instructeur
|
2019-03-13 17:59:33 +01:00
|
|
|
.includes(assign_to: { procedure: :dossiers })
|
|
|
|
.where(assign_tos: { email_notifications_enabled: true })
|
2019-08-06 11:02:54 +02:00
|
|
|
.find_in_batches { |instructeurs| send_batch_of_instructeurs_email_notification(instructeurs) }
|
2019-03-13 17:59:33 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
2019-08-06 11:02:54 +02:00
|
|
|
def send_batch_of_instructeurs_email_notification(instructeurs)
|
|
|
|
instructeurs
|
|
|
|
.map { |instructeur| [instructeur, instructeur.email_notification_data] }
|
|
|
|
.reject { |(_instructeur, data)| data.empty? }
|
|
|
|
.each { |(instructeur, data)| InstructeurMailer.send_notifications(instructeur, data).deliver_later }
|
2019-03-13 17:59:33 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|