Skip to content

Commit

Permalink
Add notification on autoFD
Browse files Browse the repository at this point in the history
  • Loading branch information
yulgolem committed Mar 22, 2021
1 parent 81c21db commit bab7381
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 7 deletions.
19 changes: 15 additions & 4 deletions app/interactions/domains/force_delete_email/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,23 @@ def execute
Domain.where(registrant_id: registrant_ids)

domains.each do |domain|
next if domain.force_delete_scheduled?

domain.schedule_force_delete(type: :soft,
notify_by_email: true, reason: 'invalid_email')
process_auto_force_delete(domain) unless domain.force_delete_scheduled?
end
end

private

def process_auto_force_delete(domain)
domain.schedule_force_delete(type: :soft,
notify_by_email: true, reason: 'invalid_email')
notify_auto_force_delete(domain: domain, email: email)
end

def notify_auto_force_delete(domain:, email:)
domain.registrar.notifications.create!(text: I18n.t('force_delete_auto_email',
domain_name: domain.name,
email: email))
end
end
end
end
1 change: 1 addition & 0 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -626,6 +626,7 @@ en:
created_at_until: 'Created at until'
is_registrant: 'Is registrant'
force_delete_set_on_domain: 'Force delete set on domain %{domain_name}. Outzone date: %{outzone_date}. Purge date: %{purge_date}'
force_delete_auto_email: 'Force delete set on domain %{domain_name}. Invalid email - %{email}'
grace_period_started_domain: 'For domain %{domain_name} started 45-days redemption grace period, ForceDelete will be in effect from %{date}'
force_delete_cancelled: 'Force delete is cancelled on domain %{domain_name}'
contact_is_not_valid: 'Contact %{value} is not valid, please fix the invalid contact'
Expand Down
18 changes: 15 additions & 3 deletions test/models/domain/force_delete_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -325,41 +325,51 @@ def test_schedules_force_delete_after_bounce
@domain.update(valid_to: Time.zone.parse('2012-08-05'))
assert_not @domain.force_delete_scheduled?
travel_to Time.zone.parse('2010-07-05')
email = @domain.admin_contacts.first.email
asserted_text = "Force delete set on domain shop.test. Invalid email - #{email}"

prepare_bounced_email_address(@domain.admin_contacts.first.email)
prepare_bounced_email_address(email)

@domain.reload

assert @domain.force_delete_scheduled?
assert_equal 'invalid_email', @domain.template_name
assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date
assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date
notification = @domain.registrar.notifications.last
assert_equal notification.text, asserted_text
end

def test_schedules_force_delete_after_registrant_bounce
@domain.update(valid_to: Time.zone.parse('2012-08-05'))
assert_not @domain.force_delete_scheduled?
travel_to Time.zone.parse('2010-07-05')
email = @domain.registrant.email
asserted_text = "Force delete set on domain shop.test. Invalid email - #{email}"

prepare_bounced_email_address(@domain.registrant.email)
prepare_bounced_email_address(email)

@domain.reload

assert @domain.force_delete_scheduled?
assert_equal 'invalid_email', @domain.template_name
assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date
assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date
notification = @domain.registrar.notifications.last
assert_equal notification.text, asserted_text
end

def test_schedules_force_delete_invalid_contact
@domain.update(valid_to: Time.zone.parse('2012-08-05'))
assert_not @domain.force_delete_scheduled?
travel_to Time.zone.parse('2010-07-05')
email = 'some@[email protected]'
asserted_text = "Force delete set on domain shop.test. Invalid email - #{email}"

Truemail.configure.default_validation_type = :regex

contact = @domain.admin_contacts.first
contact.update_attribute(:email, 'some@[email protected]')
contact.update_attribute(:email, email)
contact.email_verification.verify

assert contact.email_verification_failed?
Expand All @@ -370,6 +380,8 @@ def test_schedules_force_delete_invalid_contact
assert_equal 'invalid_email', @domain.template_name
assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date
assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date
notification = @domain.registrar.notifications.last
assert_equal notification.text, asserted_text
end

def prepare_bounced_email_address(email)
Expand Down

0 comments on commit bab7381

Please sign in to comment.