mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
parent
34f1e2be2f
commit
8606cf7b48
4 changed files with 73 additions and 18 deletions
|
@ -10,27 +10,10 @@ module Concerns::Domain::Transferable
|
|||
end
|
||||
|
||||
def transfer(new_registrar)
|
||||
old_registrar = registrar
|
||||
|
||||
self.registrar = new_registrar
|
||||
regenerate_transfer_code
|
||||
|
||||
contact_codes = contacts.pluck(:code).sort.uniq
|
||||
registrant_code = registrant.code
|
||||
|
||||
transaction do
|
||||
old_registrar.messages.create!(
|
||||
body: I18n.t('domain_transfer_was_approved', contacts: contact_codes, registrant: registrant_code),
|
||||
attached_obj_id: id,
|
||||
attached_obj_type: self.class.name
|
||||
)
|
||||
|
||||
domain_transfers.create!(
|
||||
transfer_requested_at: Time.zone.now,
|
||||
old_registrar: old_registrar,
|
||||
new_registrar: new_registrar
|
||||
)
|
||||
|
||||
transfer_contacts(new_registrar)
|
||||
save(validate: false)
|
||||
end
|
||||
|
|
|
@ -11,6 +11,25 @@ class DomainTransfer < ActiveRecord::Base
|
|||
|
||||
before_create :set_wait_until
|
||||
|
||||
class << self
|
||||
def request(domain, new_registrar)
|
||||
domain_transfer = create!(
|
||||
transfer_requested_at: Time.zone.now,
|
||||
domain: domain,
|
||||
old_registrar: domain.registrar,
|
||||
new_registrar: new_registrar
|
||||
)
|
||||
|
||||
domain_transfer.approve if approve_automatically?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def approve_automatically?
|
||||
Setting.transfer_wait_time.zero?
|
||||
end
|
||||
end
|
||||
|
||||
def set_wait_until
|
||||
wait_time = Setting.transfer_wait_time
|
||||
return if wait_time == 0
|
||||
|
@ -45,4 +64,27 @@ class DomainTransfer < ActiveRecord::Base
|
|||
attached_obj_type: self.class.to_s
|
||||
)
|
||||
end
|
||||
|
||||
def approve
|
||||
transaction do
|
||||
self.status = SERVER_APPROVED
|
||||
save!
|
||||
|
||||
notify_old_registrar
|
||||
domain.transfer(new_registrar)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def notify_old_registrar
|
||||
old_contacts_codes = domain.contacts.pluck(:code).sort.uniq
|
||||
old_registrant_code = domain.registrant.code
|
||||
|
||||
old_registrar.messages.create!(
|
||||
body: I18n.t('domain_transfer_was_approved', contacts: old_contacts_codes, registrant: old_registrant_code),
|
||||
attached_obj_id: id,
|
||||
attached_obj_type: self.class.name
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue