mirror of
https://github.com/internetee/registry.git
synced 2025-05-19 10:49:39 +02:00
50 lines
1.1 KiB
Ruby
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
|