internetee-registry/app/models/domain_transfer.rb
2014-09-29 14:30:26 +03:00

49 lines
1.2 KiB
Ruby

class DomainTransfer < ActiveRecord::Base
belongs_to :domain
belongs_to :transfer_from, class_name: 'Registrar'
belongs_to :transfer_to, class_name: 'Registrar'
PENDING = 'pending'
CLIENT_APPROVED = 'clientApproved'
CLIENT_CANCELLED = 'clientCancelled'
CLIENT_REJECTED = 'clientRejected'
SERVER_APPROVED = 'serverApproved'
SERVER_CANCELLED = 'serverCancelled'
before_create :set_wait_until
def set_wait_until
wait_time = SettingGroup.domain_general.setting(:transfer_wait_time).value.to_i
return if wait_time == 0
self.wait_until = transfer_requested_at + wait_time.hours
end
def approved?
status == CLIENT_APPROVED || status == SERVER_APPROVED
end
def approve_as_client
transaction do
self.status = DomainTransfer::CLIENT_APPROVED
self.transferred_at = Time.zone.now
save
domain.generate_auth_info
domain.registrar = transfer_to
domain.save(validate: false)
end
end
def approve_as_server
transaction do
self.status = DomainTransfer::SERVER_APPROVED
self.transferred_at = Time.zone.now
save
domain.generate_auth_info
domain.registrar = transfer_to
domain.save(validate: false)
end
end
end