Added linked and ok statuses

This commit is contained in:
Priit Tark 2015-03-17 16:49:54 +02:00
parent 1f7ef2254e
commit 4f417d22da
5 changed files with 79 additions and 9 deletions

View file

@ -42,13 +42,10 @@ class Contact < ActiveRecord::Base
before_create :generate_code
before_create :generate_auth_info
after_create :ensure_disclosure
after_save :manage_automatic_statuses
def manage_automatic_statuses
if statuses.empty? && valid?
statuses.create(value: ContactStatus::OK)
elsif statuses.length > 1 || !valid?
statuses.find_by(value: ContactStatus::OK).try(:destroy)
end
after_save :manage_statuses
def manage_statuses
ContactStatus.manage(statuses, self)
statuses.reload
end
scope :current_registrars, ->(id) { where(registrar_id: id) }

View file

@ -70,6 +70,32 @@ class ContactStatus < ActiveRecord::Base
SERVER_UPDATE_PROHIBITED
]
class << self
def manage(statuses, contact)
manage_linked(statuses, contact)
manage_ok(statuses, contact)
end
def manage_linked(statuses, contact)
if contact.domains.present?
create(value: LINKED, contact_id: contact.id) if statuses.select { |s| s.value == LINKED }.blank?
else
statuses.select { |s| s.value == LINKED }.each(&:destroy)
end
end
def manage_ok(statuses, contact)
if statuses.present?
if contact.valid?
else
statuses.select { |s| s.value == OK }.each(&:destroy)
end
else
create(value: OK, contact_id: contact.id)
end
end
end
def epp_code_map
{
'2302' => [ # Object exists