mirror of
https://github.com/internetee/registry.git
synced 2025-05-16 17:37:17 +02:00
61 lines
1.7 KiB
Ruby
61 lines
1.7 KiB
Ruby
class Keyrelay < ActiveRecord::Base
|
|
include Versions # version/keyrelay_version.rb
|
|
include EppErrors
|
|
|
|
belongs_to :domain
|
|
|
|
belongs_to :requester, class_name: 'Registrar'
|
|
belongs_to :accepter, class_name: 'Registrar'
|
|
|
|
has_many :legal_documents, as: :documentable
|
|
|
|
delegate :name, to: :domain, prefix: true
|
|
|
|
validates :domain, :key_data_public_key, :key_data_flags, :key_data_protocol,
|
|
:key_data_alg, :auth_info_pw, presence: true
|
|
validates :expiry_relative, duration_iso8601: true
|
|
|
|
validate :validate_expiry_relative_xor_expiry_absolute
|
|
|
|
after_save :touch_domain_version
|
|
|
|
def epp_code_map
|
|
{
|
|
'2005' => [
|
|
[:expiry_relative, :unknown_pattern, { value: { obj: 'relative', val: expiry_relative } }]
|
|
],
|
|
'2003' => [
|
|
# TODO: Remove only_one_parameter_allowed and other params that are validated in controller?
|
|
[:base, :only_one_parameter_allowed, { param_1: 'relative', param_2: 'absolute' }],
|
|
[:key_data_public_key, :blank],
|
|
[:key_data_flags, :blank],
|
|
[:key_data_protocol, :blank],
|
|
[:key_data_alg, :blank],
|
|
[:auth_info_pw, :blank]
|
|
]
|
|
}
|
|
end
|
|
|
|
def expiry
|
|
if expiry_relative.present?
|
|
pa_date + ISO8601::Duration.new(expiry_relative).to_seconds
|
|
elsif expiry_absolute
|
|
expiry_absolute
|
|
end
|
|
end
|
|
|
|
def status
|
|
if Time.zone.now > expiry
|
|
return 'expired'
|
|
else
|
|
return 'pending'
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def validate_expiry_relative_xor_expiry_absolute
|
|
return if expiry_relative.blank? ^ expiry_absolute.blank?
|
|
errors.add(:base, I18n.t(:only_one_parameter_allowed, param_1: 'relative', param_2: 'absolute'))
|
|
end
|
|
end
|