Refactor statuses to static

This commit is contained in:
Martin Lensment 2014-09-02 15:48:48 +03:00
parent 5f277ae2bb
commit 710ac1db92
5 changed files with 47 additions and 13 deletions

View file

@ -26,9 +26,7 @@ class Domain < ActiveRecord::Base
has_many :domain_nameservers, dependent: :delete_all
has_many :nameservers, through: :domain_nameservers
has_many :domain_statuses, -> {
joins(:setting).where(settings: { setting_group_id: SettingGroup.domain_statuses.id })
}, dependent: :delete_all
has_many :domain_statuses, dependent: :delete_all
has_many :domain_transfers, dependent: :delete_all
@ -134,10 +132,13 @@ class Domain < ActiveRecord::Base
next
end
setting = SettingGroup.domain_statuses.settings.find_by(value: x[:value])
unless DomainStatus::STATUSES.include?(x[:value])
add_epp_error('2302', 'status', x[:value], [:domain_statuses, :not_found])
next
end
domain_statuses.build(
setting: setting,
value: x[:value],
description: x[:description]
)
end
@ -176,7 +177,7 @@ class Domain < ActiveRecord::Base
def detach_statuses(status_list)
to_delete = []
status_list.each do |x|
status = domain_statuses.joins(:setting).where(settings: { value: x[:value] })
status = domain_statuses.find_by(value: x[:value])
if status.blank?
add_epp_error('2303', 'status', x[:value], [:domain_statuses, :not_found])
else

View file

@ -7,11 +7,31 @@ class DomainStatus < ActiveRecord::Base
}
belongs_to :domain
belongs_to :setting
# belongs_to :setting
delegate :value, :code, to: :setting
# delegate :value, :code, to: :setting
validates :setting, uniqueness: { scope: :domain_id }
# validates :setting, uniqueness: { scope: :domain_id }
CLIENT_DELETE_PROHIBITED = 'clientDeleteProhibited'
SERVER_DELETE_PROHIBITED = 'serverDeleteProhibited'
CLIENT_HOLD = 'clientHold'
SERVER_HOLD = 'serverHold'
CLIENT_RENEW_PROHIBITED = 'clientRenewProhibited'
SERVER_RENEW_PROHIBITED = 'serverRenewProhibited'
CLIENT_TRANSFER_PROHIBITED = 'clientTransferProhibited'
SERVER_TRANSFER_PROHIBITED = 'serverTransferProhibited'
CLIENT_UPDATE_PROHIBITED = 'clientUpdateProhibited'
SERVER_UPDATE_PROHIBITED = 'serverUpdateProhibited'
INACTIVE = 'inactive'
OK = 'ok'
PENDING_CREATE = 'pendingCreate'
PENDING_DELETE = 'pendingDelete'
PENDING_RENEW = 'pendingRenew'
PENDING_TRANSFER = 'pendingTransfer'
PENDING_UPDATE = 'pendingUpdate'
STATUSES = [CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD, CLIENT_RENEW_PROHIBITED, SERVER_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED, SERVER_TRANSFER_PROHIBITED, CLIENT_UPDATE_PROHIBITED, SERVER_UPDATE_PROHIBITED, INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_RENEW, PENDING_TRANSFER, PENDING_UPDATE]
def epp_code_map
{