internetee-registry/app/models/domain_contact.rb
2014-10-22 11:12:55 +03:00

50 lines
1.1 KiB
Ruby

class DomainContact < ActiveRecord::Base
include EppErrors
belongs_to :contact
belongs_to :domain
after_create :domain_snapshot
after_destroy :domain_snapshot
# after_save :domain_snapshot
attr_accessor :value_typeahead
def epp_code_map
{
'2302' => [
[:contact, :taken, { value: { obj: 'contact', val: contact.code } }]
]
}
end
TECH = 'tech'
ADMIN = 'admin'
TYPES = [TECH, ADMIN]
validates :contact, presence: true
scope :admin, -> { where(contact_type: ADMIN) }
scope :tech, -> { where(contact_type: TECH) }
def admin?
contact_type == ADMIN
end
def tech?
contact_type == TECH
end
def value_typeahead
@value_typeahead || contact.try(:name) || nil
end
def domain_snapshot
# We don't create a version unless domain is valid, is that a good idea?
return true unless PaperTrail.enabled?
return true if domain.nil?
return true if contact.nil?
return true if domain.versions.last.try(:snapshot) == domain.try(:create_snapshot)
domain.touch_with_version if domain.valid?
true
end
end