mirror of
https://github.com/internetee/registry.git
synced 2025-05-16 17:37:17 +02:00
38 lines
1.2 KiB
Ruby
38 lines
1.2 KiB
Ruby
class DomainExpireMailer < ApplicationMailer
|
|
def expired(domain:, registrar:)
|
|
@domain = domain_presenter(domain: domain)
|
|
@registrar = registrar_presenter(registrar: registrar)
|
|
|
|
recipient = filter_invalid_emails(emails: domain.primary_contact_emails, domain: domain)
|
|
subject = default_i18n_subject(domain_name: domain.name)
|
|
|
|
logger.info("Send DomainExpireMailer#expired email for domain #{domain.name} (##{domain.id})" \
|
|
" to #{recipient.join(', ')}")
|
|
|
|
mail(to: recipient, subject: subject)
|
|
end
|
|
|
|
private
|
|
|
|
def domain_presenter(domain:)
|
|
DomainPresenter.new(domain: domain, view: view_context)
|
|
end
|
|
|
|
def registrar_presenter(registrar:)
|
|
RegistrarPresenter.new(registrar: registrar, view: view_context)
|
|
end
|
|
|
|
# Needed because there are invalid emails in the database, which have been imported from legacy app
|
|
def filter_invalid_emails(emails:, domain:)
|
|
emails.select do |email|
|
|
valid = EmailValidator.new(email).valid?
|
|
|
|
unless valid
|
|
logger.info("Unable to send DomainExpireMailer#expired email for domain #{domain.name} (##{domain.id})" \
|
|
" to invalid recipient #{email}")
|
|
end
|
|
|
|
valid
|
|
end
|
|
end
|
|
end
|