Add checking if any of domain emails still got bounce related

This commit is contained in:
Alex Sherman 2021-04-06 12:36:32 +05:00
parent 39d392696a
commit 95a2b705b4
3 changed files with 46 additions and 2 deletions

View file

@ -19,8 +19,17 @@ module Domains
def force_delete_condition(domain)
domain.force_delete_scheduled? &&
domain.template_name == 'invalid_email' &&
domain.contacts.all? { |contact| contact.email_verification.verified? } &&
template_of_invalid_email?(domain) &&
contact_emails_valid?(domain) &&
bounces_absent?(domain)
end
def template_of_invalid_email?(domain)
domain.template_name == 'invalid_email'
end
def contact_emails_valid?(domain)
domain.contacts.all? { |contact| contact.email_verification.verified? } &&
domain.registrant.email_verification.verified?
end
@ -28,6 +37,11 @@ module Domains
domain.registrant.email_verification.verify
domain.contacts.each { |contact| contact.email_verification.verify }
end
def bounces_absent?(domain)
emails = domain.all_related_emails
BouncedMailAddress.where(email: emails).empty?
end
end
end
end

View file

@ -668,6 +668,10 @@ class Domain < ApplicationRecord
end
end
def all_related_emails
(admin_contacts.emails + tech_contacts.emails + [registrant.email]).uniq
end
def force_delete_contact_emails
(primary_contact_emails + tech_contacts.pluck(:email) +
["info@#{name}", "#{prepared_domain_name}@#{name}"]).uniq