diff --git a/app/models/domain.rb b/app/models/domain.rb index b7b4b9f30..ded069c03 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -35,7 +35,6 @@ class Domain < ActiveRecord::Base validate :validate_period validate :validate_nameservers_uniqueness - validate :validate_statuses_uniqueness def name=(value) value.strip! @@ -58,20 +57,6 @@ class Domain < ActiveRecord::Base errors.add(:nameservers, :out_of_range, { min: min, max: max }) 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 validated = [] nameservers.each do |ns| diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index b259bcd27..c995be32a 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -22,4 +22,18 @@ class DomainStatus < ActiveRecord::Base 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] + + EPP_ATTR_MAP = { + value: 'status' + } + + validates :value, uniqueness: { scope: :domain_id } + + def epp_code_map + { + '2302' => [ # Object exists + [:value, :taken] + ] + } + end end