From a3e6bc4cf90c319a797a3b19cf6188d8360628ff Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 23 Nov 2020 16:31:26 +0500 Subject: [PATCH 1/3] Mode DomainDeleteConfirm job to interactor --- .../send_request.rb | 22 +++++++++++++++++++ app/jobs/domain_delete_confirm_email_job.rb | 18 +-------------- 2 files changed, 23 insertions(+), 17 deletions(-) create mode 100644 app/interactions/domain_delete_confirm_interaction/send_request.rb diff --git a/app/interactions/domain_delete_confirm_interaction/send_request.rb b/app/interactions/domain_delete_confirm_interaction/send_request.rb new file mode 100644 index 0000000000..6e734d40de --- /dev/null +++ b/app/interactions/domain_delete_confirm_interaction/send_request.rb @@ -0,0 +1,22 @@ +module DomainDeleteConfirmInteraction + class SendRequest < ActiveInteraction::Base + object :domain, + class: Domain, + description: 'Domain to send delete confirmation' + + def execute + log + DomainDeleteMailer.confirmation_request(domain: domain, + registrar: domain.registrar, + registrant: domain.registrant).deliver_now + end + + private + + def log + message = "Send DomainDeleteMailer#confirm email for domain #{domain.name} (##{domain.id})" \ + " to #{domain.registrant.email}" + Rails.logger.info(message) + end + end +end diff --git a/app/jobs/domain_delete_confirm_email_job.rb b/app/jobs/domain_delete_confirm_email_job.rb index ea5a9bf490..ef9a1ba96a 100644 --- a/app/jobs/domain_delete_confirm_email_job.rb +++ b/app/jobs/domain_delete_confirm_email_job.rb @@ -1,22 +1,6 @@ class DomainDeleteConfirmEmailJob < Que::Job def run(domain_id) domain = Domain.find(domain_id) - - log(domain) - DomainDeleteMailer.confirmation_request(domain: domain, - registrar: domain.registrar, - registrant: domain.registrant).deliver_now - end - - private - - def log(domain) - message = "Send DomainDeleteMailer#confirm email for domain #{domain.name} (##{domain.id})" \ - " to #{domain.registrant.email}" - logger.info(message) - end - - def logger - Rails.logger + DomainDeleteConfirmInteraction::SendRequest.run(domain: domain) end end From cb3cf37331a090d6ab03ef82afdf3bfa228e4568 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 23 Nov 2020 16:57:28 +0500 Subject: [PATCH 2/3] Change email sending from job to delayed send --- .../send_request.rb | 2 +- app/jobs/domain_delete_confirm_email_job.rb | 8 ++++---- app/models/domain.rb | 2 +- test/integration/epp/domain/delete/base_test.rb | 13 +++++++++---- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/interactions/domain_delete_confirm_interaction/send_request.rb b/app/interactions/domain_delete_confirm_interaction/send_request.rb index 6e734d40de..bbf4c8d9ed 100644 --- a/app/interactions/domain_delete_confirm_interaction/send_request.rb +++ b/app/interactions/domain_delete_confirm_interaction/send_request.rb @@ -8,7 +8,7 @@ def execute log DomainDeleteMailer.confirmation_request(domain: domain, registrar: domain.registrar, - registrant: domain.registrant).deliver_now + registrant: domain.registrant).deliver_later end private diff --git a/app/jobs/domain_delete_confirm_email_job.rb b/app/jobs/domain_delete_confirm_email_job.rb index ef9a1ba96a..d2c814bd8e 100644 --- a/app/jobs/domain_delete_confirm_email_job.rb +++ b/app/jobs/domain_delete_confirm_email_job.rb @@ -1,6 +1,6 @@ class DomainDeleteConfirmEmailJob < Que::Job - def run(domain_id) - domain = Domain.find(domain_id) - DomainDeleteConfirmInteraction::SendRequest.run(domain: domain) - end + # def run(domain_id) + # domain = Domain.find(domain_id) + # DomainDeleteConfirmInteraction::SendRequest.run(domain: domain) + # end end diff --git a/app/models/domain.rb b/app/models/domain.rb index b15bb7c555..1ef66ffab7 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -418,7 +418,7 @@ def pending_delete! pending_delete_confirmation! save(validate: false) # should check if this did succeed - DomainDeleteConfirmEmailJob.enqueue(id) + DomainDeleteConfirmInteraction::SendRequest.run(domain: self) end def cancel_pending_delete diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index bfdfa9f755..56a3cc31e0 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -35,7 +35,6 @@ def test_bypasses_domain_and_registrant_and_contacts_validation XML post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } - # binding.pry assert_includes Domain.find_by(name: 'invalid.test').statuses, DomainStatus::PENDING_DELETE_CONFIRMATION assert_epp_response :completed_successfully_action_pending end @@ -90,7 +89,9 @@ def test_requests_registrant_confirmation_when_required XML - post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + perform_enqueued_jobs do + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end @domain.reload assert @domain.registrant_verification_asked? @@ -121,7 +122,9 @@ def test_skips_registrant_confirmation_when_not_required XML - post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + perform_enqueued_jobs do + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end @domain.reload assert_not @domain.registrant_verification_asked? @@ -152,7 +155,9 @@ def test_skips_registrant_confirmation_when_required_but_already_verified_by_reg XML - post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + perform_enqueued_jobs do + post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end @domain.reload assert_not @domain.registrant_verification_asked? From 89c5413fc702c8399474ff18f6f245af531deeba Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 24 Nov 2020 13:26:38 +0500 Subject: [PATCH 3/3] Unused class clean-up --- app/jobs/domain_delete_confirm_email_job.rb | 6 ------ test/models/whois/record_test.rb | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 app/jobs/domain_delete_confirm_email_job.rb diff --git a/app/jobs/domain_delete_confirm_email_job.rb b/app/jobs/domain_delete_confirm_email_job.rb deleted file mode 100644 index d2c814bd8e..0000000000 --- a/app/jobs/domain_delete_confirm_email_job.rb +++ /dev/null @@ -1,6 +0,0 @@ -class DomainDeleteConfirmEmailJob < Que::Job - # def run(domain_id) - # domain = Domain.find(domain_id) - # DomainDeleteConfirmInteraction::SendRequest.run(domain: domain) - # end -end diff --git a/test/models/whois/record_test.rb b/test/models/whois/record_test.rb index e900a4965e..d06b23cae7 100644 --- a/test/models/whois/record_test.rb +++ b/test/models/whois/record_test.rb @@ -70,6 +70,6 @@ def test_updates_whois_record_from_auction_when_payment_received end def registration_deadline - Time.zone.now + 10.days + @registration_deadline ||= Time.zone.now + 10.days end end