diff --git a/app/interactions/domains/cancel_force_delete/remove_force_delete_statuses.rb b/app/interactions/domains/cancel_force_delete/remove_force_delete_statuses.rb index c77820ecf..adb310e51 100644 --- a/app/interactions/domains/cancel_force_delete/remove_force_delete_statuses.rb +++ b/app/interactions/domains/cancel_force_delete/remove_force_delete_statuses.rb @@ -2,10 +2,12 @@ module Domains module CancelForceDelete 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_statuses = [DomainStatus::FORCE_DELETE, + DomainStatus::SERVER_RENEW_PROHIBITED, + DomainStatus::SERVER_TRANSFER_PROHIBITED, + DomainStatus::CLIENT_HOLD] + rejected_statuses = domain.statuses.reject { |a| domain_statuses.include? a } + domain.statuses = rejected_statuses domain.save(validate: false) end end diff --git a/app/interactions/domains/cancel_force_delete/restore_statuses_before_force_delete.rb b/app/interactions/domains/cancel_force_delete/restore_statuses_before_force_delete.rb index c55c06764..4643a8bea 100644 --- a/app/interactions/domains/cancel_force_delete/restore_statuses_before_force_delete.rb +++ b/app/interactions/domains/cancel_force_delete/restore_statuses_before_force_delete.rb @@ -2,8 +2,10 @@ module Domains module CancelForceDelete class RestoreStatusesBeforeForceDelete < Base def execute - domain.statuses = domain.statuses_before_force_delete + # domain.statuses = domain.statuses_before_force_delete + domain.statuses = domain.force_delete_domain_statuses_history || [] domain.statuses_before_force_delete = nil + domain.force_delete_domain_statuses_history = nil domain.save(validate: false) end end diff --git a/app/interactions/domains/force_delete/prepare_domain.rb b/app/interactions/domains/force_delete/prepare_domain.rb index 74eea21ed..e45f7969c 100644 --- a/app/interactions/domains/force_delete/prepare_domain.rb +++ b/app/interactions/domains/force_delete/prepare_domain.rb @@ -6,6 +6,7 @@ module Domains DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze def execute + domain.force_delete_domain_statuses_history = domain.statuses domain.statuses_before_force_delete = domain.statuses domain.statuses |= STATUSES_TO_SET domain.save(validate: false) diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 45291cfba..b514675c1 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -3,7 +3,7 @@ module Domain::ForceDelete # rubocop:disable Metrics/ModuleLength FORCE_DELETE_STATUSES = [DomainStatus::FORCE_DELETE, DomainStatus::SERVER_RENEW_PROHIBITED, - DomainStatus::SERVER_TRANSFER_PROHIBITED] + DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze included do store_accessor :force_delete_data, @@ -50,17 +50,13 @@ module Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end def schedule_force_delete(type: :fast_track, notify_by_email: false, reason: nil, email: nil) - self.force_delete_domain_statuses_history = statuses.map do |status| - status if FORCE_DELETE_STATUSES.include? status - end - Domains::ForceDelete::SetForceDelete.run(domain: self, type: type, reason: reason, notify_by_email: notify_by_email, email: email) end def cancel_force_delete Domains::CancelForceDelete::CancelForceDelete.run(domain: self) - self.force_delete_domain_statuses_history = nil + # self.statuses = force_delete_domain_statuses_history end def outzone_date diff --git a/app/models/concerns/domain/registry_lockable.rb b/app/models/concerns/domain/registry_lockable.rb index 1ea903bdc..d7affb8d1 100644 --- a/app/models/concerns/domain/registry_lockable.rb +++ b/app/models/concerns/domain/registry_lockable.rb @@ -9,7 +9,7 @@ module Domain::RegistryLockable return unless registry_lockable? return if locked_by_registrant? - put_statuses_to_json_history_before_locked + save_statuses_history transaction do self.statuses |= LOCK_STATUSES @@ -38,7 +38,7 @@ module Domain::RegistryLockable transaction do LOCK_STATUSES.each do |domain_status| - delete_domain_statuses_which_not_declared_before domain_status + remove_predetermined_statuses domain_status end self.locked_by_registrant_at = nil clear_locked_domain_statuses_history @@ -60,13 +60,13 @@ module Domain::RegistryLockable private - def put_statuses_to_json_history_before_locked + def save_statuses_history self.locked_domain_statuses_history = statuses.map do |status| status if LOCK_STATUSES.include? status end end - def delete_domain_statuses_which_not_declared_before(domain_status) + def remove_predetermined_statuses(domain_status) statuses.delete(domain_status) unless locked_domain_statuses_history.include? domain_status end