mirror of
https://github.com/internetee/registry.git
synced 2025-07-03 09:43:36 +02:00
Refactor statuses to static
This commit is contained in:
parent
5f277ae2bb
commit
710ac1db92
5 changed files with 47 additions and 13 deletions
|
@ -26,9 +26,7 @@ class Domain < ActiveRecord::Base
|
||||||
has_many :domain_nameservers, dependent: :delete_all
|
has_many :domain_nameservers, dependent: :delete_all
|
||||||
has_many :nameservers, through: :domain_nameservers
|
has_many :nameservers, through: :domain_nameservers
|
||||||
|
|
||||||
has_many :domain_statuses, -> {
|
has_many :domain_statuses, dependent: :delete_all
|
||||||
joins(:setting).where(settings: { setting_group_id: SettingGroup.domain_statuses.id })
|
|
||||||
}, dependent: :delete_all
|
|
||||||
|
|
||||||
has_many :domain_transfers, dependent: :delete_all
|
has_many :domain_transfers, dependent: :delete_all
|
||||||
|
|
||||||
|
@ -134,10 +132,13 @@ class Domain < ActiveRecord::Base
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
setting = SettingGroup.domain_statuses.settings.find_by(value: x[:value])
|
unless DomainStatus::STATUSES.include?(x[:value])
|
||||||
|
add_epp_error('2302', 'status', x[:value], [:domain_statuses, :not_found])
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
domain_statuses.build(
|
domain_statuses.build(
|
||||||
setting: setting,
|
value: x[:value],
|
||||||
description: x[:description]
|
description: x[:description]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
@ -176,7 +177,7 @@ class Domain < ActiveRecord::Base
|
||||||
def detach_statuses(status_list)
|
def detach_statuses(status_list)
|
||||||
to_delete = []
|
to_delete = []
|
||||||
status_list.each do |x|
|
status_list.each do |x|
|
||||||
status = domain_statuses.joins(:setting).where(settings: { value: x[:value] })
|
status = domain_statuses.find_by(value: x[:value])
|
||||||
if status.blank?
|
if status.blank?
|
||||||
add_epp_error('2303', 'status', x[:value], [:domain_statuses, :not_found])
|
add_epp_error('2303', 'status', x[:value], [:domain_statuses, :not_found])
|
||||||
else
|
else
|
||||||
|
|
|
@ -7,11 +7,31 @@ class DomainStatus < ActiveRecord::Base
|
||||||
}
|
}
|
||||||
|
|
||||||
belongs_to :domain
|
belongs_to :domain
|
||||||
belongs_to :setting
|
# belongs_to :setting
|
||||||
|
|
||||||
delegate :value, :code, to: :setting
|
# delegate :value, :code, to: :setting
|
||||||
|
|
||||||
validates :setting, uniqueness: { scope: :domain_id }
|
# validates :setting, uniqueness: { scope: :domain_id }
|
||||||
|
|
||||||
|
CLIENT_DELETE_PROHIBITED = 'clientDeleteProhibited'
|
||||||
|
SERVER_DELETE_PROHIBITED = 'serverDeleteProhibited'
|
||||||
|
CLIENT_HOLD = 'clientHold'
|
||||||
|
SERVER_HOLD = 'serverHold'
|
||||||
|
CLIENT_RENEW_PROHIBITED = 'clientRenewProhibited'
|
||||||
|
SERVER_RENEW_PROHIBITED = 'serverRenewProhibited'
|
||||||
|
CLIENT_TRANSFER_PROHIBITED = 'clientTransferProhibited'
|
||||||
|
SERVER_TRANSFER_PROHIBITED = 'serverTransferProhibited'
|
||||||
|
CLIENT_UPDATE_PROHIBITED = 'clientUpdateProhibited'
|
||||||
|
SERVER_UPDATE_PROHIBITED = 'serverUpdateProhibited'
|
||||||
|
INACTIVE = 'inactive'
|
||||||
|
OK = 'ok'
|
||||||
|
PENDING_CREATE = 'pendingCreate'
|
||||||
|
PENDING_DELETE = 'pendingDelete'
|
||||||
|
PENDING_RENEW = 'pendingRenew'
|
||||||
|
PENDING_TRANSFER = 'pendingTransfer'
|
||||||
|
PENDING_UPDATE = 'pendingUpdate'
|
||||||
|
|
||||||
|
STATUSES = [CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD, CLIENT_RENEW_PROHIBITED, SERVER_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED, SERVER_TRANSFER_PROHIBITED, CLIENT_UPDATE_PROHIBITED, SERVER_UPDATE_PROHIBITED, INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_RENEW, PENDING_TRANSFER, PENDING_UPDATE]
|
||||||
|
|
||||||
def epp_code_map
|
def epp_code_map
|
||||||
{
|
{
|
||||||
|
|
10
db/migrate/20140902121843_refactor_domain_statuses.rb
Normal file
10
db/migrate/20140902121843_refactor_domain_statuses.rb
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
class RefactorDomainStatuses < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :domain_statuses, :value, :string
|
||||||
|
remove_column :domain_statuses, :setting_id
|
||||||
|
|
||||||
|
sg = SettingGroup.find_by(code: 'domain_statuses')
|
||||||
|
sg.settings.delete_all
|
||||||
|
sg.delete
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20140828133057) do
|
ActiveRecord::Schema.define(version: 20140902121843) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -84,8 +84,8 @@ ActiveRecord::Schema.define(version: 20140828133057) do
|
||||||
|
|
||||||
create_table "domain_statuses", force: true do |t|
|
create_table "domain_statuses", force: true do |t|
|
||||||
t.integer "domain_id"
|
t.integer "domain_id"
|
||||||
t.integer "setting_id"
|
|
||||||
t.string "description"
|
t.string "description"
|
||||||
|
t.string "value"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "domain_transfers", force: true do |t|
|
create_table "domain_transfers", force: true do |t|
|
||||||
|
|
|
@ -308,7 +308,7 @@ describe 'EPP Domain', epp: true do
|
||||||
|
|
||||||
it 'returns domain info' do
|
it 'returns domain info' do
|
||||||
d = Domain.first
|
d = Domain.first
|
||||||
d.domain_statuses.create(setting: Setting.find_by(code: 'client_hold'), description: 'Payment overdue.')
|
d.domain_statuses.create(value: DomainStatus::CLIENT_HOLD, description: 'Payment overdue.')
|
||||||
d.nameservers.create(hostname: 'ns1.example.com', ipv4: '192.168.1.1', ipv6: '1080:0:0:0:8:800:200C:417A')
|
d.nameservers.create(hostname: 'ns1.example.com', ipv4: '192.168.1.1', ipv6: '1080:0:0:0:8:800:200C:417A')
|
||||||
|
|
||||||
response = epp_request(domain_info_xml, :xml)
|
response = epp_request(domain_info_xml, :xml)
|
||||||
|
@ -374,7 +374,6 @@ describe 'EPP Domain', epp: true do
|
||||||
expect(d.domain_statuses.count).to eq(2)
|
expect(d.domain_statuses.count).to eq(2)
|
||||||
expect(d.domain_statuses.first.description).to eq('Payment overdue.')
|
expect(d.domain_statuses.first.description).to eq('Payment overdue.')
|
||||||
expect(d.domain_statuses.first.value).to eq('clientHold')
|
expect(d.domain_statuses.first.value).to eq('clientHold')
|
||||||
expect(d.domain_statuses.first.code).to eq('client_hold')
|
|
||||||
|
|
||||||
expect(d.domain_statuses.last.value).to eq('clientUpdateProhibited')
|
expect(d.domain_statuses.last.value).to eq('clientUpdateProhibited')
|
||||||
|
|
||||||
|
@ -383,6 +382,10 @@ describe 'EPP Domain', epp: true do
|
||||||
expect(response[:results][0][:msg]).to eq('Nameserver already exists on this domain')
|
expect(response[:results][0][:msg]).to eq('Nameserver already exists on this domain')
|
||||||
expect(response[:results][0][:value]).to eq('ns1.example.com')
|
expect(response[:results][0][:value]).to eq('ns1.example.com')
|
||||||
expect(response[:results][1][:msg]).to eq('Nameserver already exists on this domain')
|
expect(response[:results][1][:msg]).to eq('Nameserver already exists on this domain')
|
||||||
|
expect(response[:results][2][:msg]).to eq('Status already exists on this domain')
|
||||||
|
expect(response[:results][2][:value]).to eq('clientHold')
|
||||||
|
expect(response[:results][3][:msg]).to eq('Status already exists on this domain')
|
||||||
|
expect(response[:results][3][:value]).to eq('clientUpdateProhibited')
|
||||||
expect(d.domain_statuses.count).to eq(2)
|
expect(d.domain_statuses.count).to eq(2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue