mirror of
https://github.com/internetee/registry.git
synced 2025-07-21 02:05:57 +02:00
Handle invalid emails in DomainExpireMailer#expired, move logging from job to mailer
#186
This commit is contained in:
parent
a5c0333a5d
commit
e6e3ab9e1e
4 changed files with 78 additions and 43 deletions
|
@ -4,18 +4,6 @@ class DomainExpireEmailJob < Que::Job
|
|||
|
||||
return if domain.registered?
|
||||
|
||||
log(domain)
|
||||
DomainExpireMailer.expired(domain: domain, registrar: domain.registrar).deliver_now
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def log(domain)
|
||||
message = "Send DomainExpireMailer#expired email for domain ##{domain.id} to #{domain.primary_contact_emails.join(', ')}"
|
||||
logger.info(message)
|
||||
end
|
||||
|
||||
def logger
|
||||
Rails.logger
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,9 +1,38 @@
|
|||
class DomainExpireMailer < ApplicationMailer
|
||||
def expired(domain:, registrar:)
|
||||
@domain = DomainPresenter.new(domain: domain, view: view_context)
|
||||
@registrar = RegistrarPresenter.new(registrar: registrar, view: view_context)
|
||||
@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)
|
||||
mail(to: domain.primary_contact_emails, subject: subject)
|
||||
|
||||
logger.info("Send DomainExpireMailer#expired email for domain ##{domain.id}" \
|
||||
" to #{domain.primary_contact_emails.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.keep_if do |email|
|
||||
valid = EmailValidator.new(email).valid?
|
||||
|
||||
unless valid
|
||||
logger.info("Unable to send DomainExpireMailer#expired email for domain ##{domain.id}" \
|
||||
" to invalid recipient #{email}")
|
||||
end
|
||||
|
||||
valid
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue