mirror of
https://github.com/internetee/registry.git
synced 2025-06-07 21:25:39 +02:00
Merge pull request #1744 from internetee/1743-turn-canceling-force-delete-to-interactor
Refactor canceling ForceDelete to use interactor design pattern
This commit is contained in:
commit
c98f059883
7 changed files with 56 additions and 25 deletions
7
app/interactions/cancel_force_delete_interaction/base.rb
Normal file
7
app/interactions/cancel_force_delete_interaction/base.rb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
module CancelForceDeleteInteraction
|
||||||
|
class Base < ActiveInteraction::Base
|
||||||
|
object :domain,
|
||||||
|
class: Domain,
|
||||||
|
description: 'Domain to cancel ForceDelete on'
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,10 @@
|
||||||
|
module CancelForceDeleteInteraction
|
||||||
|
class CancelForceDelete < Base
|
||||||
|
def execute
|
||||||
|
compose(RemoveForceDeleteStatuses, inputs)
|
||||||
|
compose(RestoreStatusesBeforeForceDelete, inputs)
|
||||||
|
compose(ClearForceDeleteData, inputs)
|
||||||
|
compose(NotifyRegistrar, inputs)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,10 @@
|
||||||
|
module CancelForceDeleteInteraction
|
||||||
|
class ClearForceDeleteData < Base
|
||||||
|
def execute
|
||||||
|
domain.force_delete_data = nil
|
||||||
|
domain.force_delete_date = nil
|
||||||
|
domain.force_delete_start = nil
|
||||||
|
domain.save(validate: false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,8 @@
|
||||||
|
module CancelForceDeleteInteraction
|
||||||
|
class NotifyRegistrar < Base
|
||||||
|
def execute
|
||||||
|
domain.registrar.notifications.create!(text: I18n.t('force_delete_cancelled',
|
||||||
|
domain_name: domain.name))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,11 @@
|
||||||
|
module CancelForceDeleteInteraction
|
||||||
|
class RemoveForceDeleteStatuses < Base
|
||||||
|
def execute
|
||||||
|
domain.statuses.delete(DomainStatus::FORCE_DELETE)
|
||||||
|
domain.statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED)
|
||||||
|
domain.statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
||||||
|
domain.statuses.delete(DomainStatus::CLIENT_HOLD)
|
||||||
|
domain.save(validate: false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
module CancelForceDeleteInteraction
|
||||||
|
class RestoreStatusesBeforeForceDelete < Base
|
||||||
|
def execute
|
||||||
|
domain.statuses = domain.statuses_before_force_delete
|
||||||
|
domain.statuses_before_force_delete = nil
|
||||||
|
domain.save(validate: false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -58,18 +58,8 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
|
||||||
notify_by_email: notify_by_email)
|
notify_by_email: notify_by_email)
|
||||||
end
|
end
|
||||||
|
|
||||||
def clear_force_delete_data
|
|
||||||
self.force_delete_data = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
def cancel_force_delete
|
def cancel_force_delete
|
||||||
remove_force_delete_statuses
|
CancelForceDeleteInteraction::CancelForceDelete.run(domain: self)
|
||||||
restore_statuses_before_force_delete
|
|
||||||
clear_force_delete_data
|
|
||||||
self.force_delete_date = nil
|
|
||||||
self.force_delete_start = nil
|
|
||||||
save(validate: false)
|
|
||||||
registrar.notifications.create!(text: I18n.t('force_delete_cancelled', domain_name: name))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def outzone_date
|
def outzone_date
|
||||||
|
@ -80,18 +70,4 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
|
||||||
(force_delete_date&.beginning_of_day || valid_to + Setting.expire_warning_period.days +
|
(force_delete_date&.beginning_of_day || valid_to + Setting.expire_warning_period.days +
|
||||||
Setting.redemption_grace_period.days)
|
Setting.redemption_grace_period.days)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def restore_statuses_before_force_delete
|
|
||||||
self.statuses = statuses_before_force_delete
|
|
||||||
self.statuses_before_force_delete = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_force_delete_statuses
|
|
||||||
statuses.delete(DomainStatus::FORCE_DELETE)
|
|
||||||
statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED)
|
|
||||||
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
|
||||||
statuses.delete(DomainStatus::CLIENT_HOLD)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue