From 98c27175399ba34b5857d8ea183af66800a55d5d Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Thu, 11 Sep 2014 13:03:42 +0300 Subject: [PATCH] Refactor status uniqueness --- app/models/domain.rb | 15 --------------- app/models/domain_status.rb | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 15 deletions(-) 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