diff --git a/app/interactions/domains/cancel_force_delete/cancel_force_delete.rb b/app/interactions/domains/cancel_force_delete/cancel_force_delete.rb index 6a723416d..89ab5957b 100644 --- a/app/interactions/domains/cancel_force_delete/cancel_force_delete.rb +++ b/app/interactions/domains/cancel_force_delete/cancel_force_delete.rb @@ -2,10 +2,17 @@ module Domains module CancelForceDelete class CancelForceDelete < Base def execute - compose(RemoveForceDeleteStatuses, inputs.to_h) - compose(RestoreStatusesBeforeForceDelete, inputs.to_h) - compose(ClearForceDeleteData, inputs.to_h) - compose(NotifyRegistrar, inputs.to_h) + Domain.transaction do + compose(RemoveForceDeleteStatuses, inputs.to_h) + compose(RestoreStatusesBeforeForceDelete, inputs.to_h) + compose(ClearForceDeleteData, inputs.to_h) + + # Save the domain once with all accumulated changes + # This will create a single PaperTrail version + domain.save(validate: false) + + compose(NotifyRegistrar, inputs.to_h) + end end end end diff --git a/app/interactions/domains/cancel_force_delete/clear_force_delete_data.rb b/app/interactions/domains/cancel_force_delete/clear_force_delete_data.rb index cfd522589..543113cca 100644 --- a/app/interactions/domains/cancel_force_delete/clear_force_delete_data.rb +++ b/app/interactions/domains/cancel_force_delete/clear_force_delete_data.rb @@ -7,7 +7,6 @@ module Domains domain.force_delete_start = nil domain.status_notes[DomainStatus::FORCE_DELETE] = nil domain.skip_whois_record_update = false - domain.save(validate: false) end end end 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 74460eb31..126993ca0 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 @@ -19,7 +19,6 @@ module Domains reason: domain.status_notes[DomainStatus::FORCE_DELETE], date: Time.zone.now } - domain.save(validate: false) end 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 6d3a91063..647b07f6b 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 @@ -9,7 +9,6 @@ module Domains domain.force_delete_domain_statuses_history = nil domain.admin_store_statuses_history = nil domain.skip_whois_record_update = true - domain.save(validate: false) end end end