grantcallendar/app/services/notify_email_service.rb

37 lines
920 B
Ruby

# frozen_string_literal: true
# Popup service
class NotifyEmailService
def initialize(dotation_id)
@dotation_id = dotation_id
end
def call
check_filters
end
private
def check_filters
filter_for_emails = FilterForEmail.all
filter_for_emails.each do |filter_for_email|
hsh = filter_for_email.filters.transform_keys(&:to_sym)
dot = Dotation.search_with_filters(hsh)
.by_id(@dotation_id).public_dot.first
next if dot.blank?
sef =
SentEmailFilter.by_dotation(dot.id).by_filter(filter_for_email.id).first
next unless sef.blank?
SentEmailFilter.create(filter_for_email_id: filter_for_email.id,
dotation_id: dot.id)
NewDotationMailer.with(dotation_id: dot.id,
email_filter: filter_for_email.id)
.notification_email.deliver
end
end
end