Skip to content

Commit

Permalink
separete responsibility of different pieces of code
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleg Hasjanov committed Apr 7, 2021
1 parent da31721 commit 3985513
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 7 deletions.
9 changes: 9 additions & 0 deletions app/interactions/domains/registry_lock_domain/base.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module Domain::RegistryLockable
extend ActiveSupport::Concern
class Base < ActiveInteraction::Base
object :domain,
class: Domain,
description: 'Domain to set ForceDelete on'
end
end

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module Domain::RegistryLockable
extend ActiveSupport::Concern

class SetRegistratLock < Base
LOCK_STATUSES = [DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze

def execute
transaction do
self.statuses |= LOCK_STATUSES
self.locked_by_registrant_at = Time.zone.now
alert_registrar_lock_changes!(lock: true)

save!
end
end

private

def alert_registrar_lock_changes!(lock: true)
translation = lock ? 'locked' : 'unlocked'
registrar.notifications.create!(
text: I18n.t("notifications.texts.registrar_#{translation}",
domain_name: name),
attached_obj_id: name,
attached_obj_type: self.class.name
)
end
end
end
17 changes: 10 additions & 7 deletions app/models/concerns/domain/registry_lockable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,16 @@ def apply_registry_lock

save_statuses_history

transaction do
self.statuses |= LOCK_STATUSES
self.locked_by_registrant_at = Time.zone.now
alert_registrar_lock_changes!(lock: true)

save!
end
# transaction do
# self.statuses |= LOCK_STATUSES
# self.locked_by_registrant_at = Time.zone.now
# alert_registrar_lock_changes!(lock: true)

# save!
# end
# Domains::ForceDelete::SetForceDelete.run(domain: self, type: type, reason: reason,
# notify_by_email: notify_by_email, email: email)
Domain::RegistryLockable::SetRegistratLock.run(domain: self)
end

def registry_lockable?
Expand Down

0 comments on commit 3985513

Please sign in to comment.