mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
Refactor status uniqueness
This commit is contained in:
parent
2982b22921
commit
98c2717539
2 changed files with 14 additions and 15 deletions
|
@ -35,7 +35,6 @@ class Domain < ActiveRecord::Base
|
||||||
|
|
||||||
validate :validate_period
|
validate :validate_period
|
||||||
validate :validate_nameservers_uniqueness
|
validate :validate_nameservers_uniqueness
|
||||||
validate :validate_statuses_uniqueness
|
|
||||||
|
|
||||||
def name=(value)
|
def name=(value)
|
||||||
value.strip!
|
value.strip!
|
||||||
|
@ -58,20 +57,6 @@ class Domain < ActiveRecord::Base
|
||||||
errors.add(:nameservers, :out_of_range, { min: min, max: max })
|
errors.add(:nameservers, :out_of_range, { min: min, max: max })
|
||||||
end
|
end
|
||||||
|
|
||||||
def validate_statuses_uniqueness
|
|
||||||
validated = []
|
|
||||||
domain_statuses.each do |status|
|
|
||||||
next if validated.include?(status.value)
|
|
||||||
|
|
||||||
existing = domain_statuses.select { |x| x.value == status.value }
|
|
||||||
if existing.length > 1
|
|
||||||
validated << status.value
|
|
||||||
errors.add(:domain_statuses, :taken)
|
|
||||||
add_epp_error('2302', 'status', status.value, [:domain_statuses, :taken])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def validate_nameservers_uniqueness
|
def validate_nameservers_uniqueness
|
||||||
validated = []
|
validated = []
|
||||||
nameservers.each do |ns|
|
nameservers.each do |ns|
|
||||||
|
|
|
@ -22,4 +22,18 @@ class DomainStatus < ActiveRecord::Base
|
||||||
PENDING_UPDATE = 'pendingUpdate'
|
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]
|
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]
|
||||||
|
|
||||||
|
EPP_ATTR_MAP = {
|
||||||
|
value: 'status'
|
||||||
|
}
|
||||||
|
|
||||||
|
validates :value, uniqueness: { scope: :domain_id }
|
||||||
|
|
||||||
|
def epp_code_map
|
||||||
|
{
|
||||||
|
'2302' => [ # Object exists
|
||||||
|
[:value, :taken]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue