37 lines
920 B
Ruby
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
|