Add new mailer template for expired soft delete domains

This commit is contained in:
Alex Sherman 2020-10-30 15:36:34 +05:00
parent b35eb160a6
commit c3f63ed43a
6 changed files with 146 additions and 12 deletions

View file

@ -1,19 +1,38 @@
class DomainExpireMailer < ApplicationMailer
attr_accessor :domain, :registrar
def expired(domain:, registrar:)
@domain = domain_presenter(domain: domain)
@registrar = registrar_presenter(registrar: registrar)
process_mail(domain: domain, registrar: registrar, method_name: __method__.to_s)
end
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)
def expired_soft(domain:, registrar:)
process_mail(domain: domain, registrar: registrar, method_name: __method__.to_s)
end
private
def process_mail(domain:, registrar:, method_name:)
init(domain, registrar)
logger.info("Send DomainExpireMailer##{method_name} email for #{domain.name} (##{domain.id})" \
" to #{recipient(domain).join(', ')}")
mail(to: recipient(domain), subject: subject)
end
def init(domain, registrar)
@domain = domain_presenter(domain: domain)
@registrar = registrar_presenter(registrar: registrar)
end
def recipient(domain)
filter_invalid_emails(emails: domain.primary_contact_emails, domain: @domain)
end
def subject
default_i18n_subject(domain_name: @domain.name)
end
def domain_presenter(domain:)
DomainPresenter.new(domain: domain, view: view_context)
end