mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 06:34:46 +02:00
50 lines
1.3 KiB
Ruby
50 lines
1.3 KiB
Ruby
module Domains
|
|
module DeleteConfirm
|
|
class ProcessDeleteConfirmed < Base
|
|
def execute
|
|
notify_registrar(:poll_pending_delete_confirmed_by_registrant)
|
|
domain.apply_pending_delete!
|
|
raise_errors!(domain)
|
|
end
|
|
|
|
def apply_pending_delete!
|
|
preclean_pendings
|
|
clean_pendings!
|
|
DomainDeleteMailer.accepted(domain).deliver_now
|
|
domain.set_pending_delete!
|
|
end
|
|
|
|
def set_pending_delete!
|
|
unless domain.pending_deletable?
|
|
add_epp_error
|
|
return
|
|
end
|
|
|
|
domain.delete_date = delete_date
|
|
domain.statuses << DomainStatus::PENDING_DELETE
|
|
set_server_hold if server_holdable?
|
|
domain.save(validate: false)
|
|
end
|
|
|
|
def set_server_hold
|
|
domain.statuses << DomainStatus::SERVER_HOLD
|
|
domain.outzone_at = Time.current
|
|
end
|
|
|
|
def server_holdable?
|
|
return false if domain.statuses.include?(DomainStatus::SERVER_HOLD)
|
|
return false if domain.statuses.include?(DomainStatus::SERVER_MANUAL_INZONE)
|
|
|
|
true
|
|
end
|
|
|
|
def delete_date
|
|
Time.zone.today + Setting.redemption_grace_period.days + 1.day
|
|
end
|
|
|
|
def add_epp_error
|
|
domain.add_epp_error('2304', nil, nil, I18n.t(:object_status_prohibits_operation))
|
|
end
|
|
end
|
|
end
|
|
end
|