app/jobs/domain_delete_confirm_job.rb
class DomainDeleteConfirmJob < ApplicationJob
def perform(domain_id, action, initiator = nil)
domain = Epp::Domain.find(domain_id)
Domains::DeleteConfirm::ProcessAction.run(domain: domain,
action: action,
initiator: initiator)
end
private
def action_confirmed(domain)
domain.notify_registrar(:poll_pending_delete_confirmed_by_registrant)
domain.apply_pending_delete!
raise_errors!(domain)
end
def action_rejected(domain)
domain.statuses.delete(DomainStatus::PENDING_DELETE_CONFIRMATION)
domain.notify_registrar(:poll_pending_delete_rejected_by_registrant)
domain.cancel_pending_delete
domain.save(validate: false)
raise_errors!(domain)
notify_on_domain(domain)
end
def notify_on_domain(domain)
if domain.registrant_verification_token.blank?
Rails.logger.warn 'EMAIL NOT DELIVERED: registrant_verification_token is missing for '\
"#{domain.name}"
elsif domain.registrant_verification_asked_at.blank?
Rails.logger.warn 'EMAIL NOT DELIVERED: registrant_verification_asked_at is missing for '\
"#{domain.name}"
else
DomainDeleteMailer.rejected(domain).deliver_now
end
end
end