Domain statuses improvements

This commit is contained in:
Martin Lensment 2014-08-21 12:14:34 +03:00
parent f43662e8b0
commit e20944151e
10 changed files with 54 additions and 10 deletions

View file

@ -25,11 +25,9 @@ class Domain < ActiveRecord::Base
has_and_belongs_to_many :nameservers
has_many :domain_statuses
has_many :statuses, -> {
where(setting_group: SettingGroup.domain_statuses).uniq
}, through: :domain_statuses, source: :setting
has_many :domain_statuses, -> {
joins(:setting).where(settings: {setting_group_id: SettingGroup.domain_statuses.id})
}
delegate :code, to: :owner_contact, prefix: true
delegate :name, to: :registrar, prefix: true
@ -110,7 +108,11 @@ class Domain < ActiveRecord::Base
def attach_statuses(status_list)
status_list.each do |x|
statuses << SettingGroup.domain_statuses.settings.find_by(value: x[:value])
setting = SettingGroup.domain_statuses.settings.find_by(value: x[:value])
self.domain_statuses.build(
setting: setting,
description: x[:description]
)
end
end

View file

@ -1,4 +1,25 @@
class DomainStatus < ActiveRecord::Base
# Domain statuses are stored as settings
include EppErrors
EPP_ATTR_MAP = {
setting: 'status'
}
belongs_to :domain
belongs_to :setting
delegate :value, :code, to: :setting
validates :setting, uniqueness: { scope: :domain_id }
def setting_uniqueness
end
def epp_code_map
{
'2302' => [[:setting, :taken]]
}
end
end

View file

@ -1,4 +1,6 @@
class Setting < ActiveRecord::Base
belongs_to :setting_group
has_many :domain_statuses
has_many :domains, through: :domain_statuses
validates :code, uniqueness: { scope: :setting_group_id }
end

View file

@ -3,6 +3,8 @@ class SettingGroup < ActiveRecord::Base
accepts_nested_attributes_for :settings
validates :code, uniqueness: true
def setting(key)
settings.find_by(code: key.to_s)
end