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 :nameservers, through: :domain_nameservers
|
||||
|
||||
has_many :domain_statuses, -> {
|
||||
joins(:setting).where(settings: { setting_group_id: SettingGroup.domain_statuses.id })
|
||||
}, dependent: :delete_all
|
||||
has_many :domain_statuses, dependent: :delete_all
|
||||
|
||||
has_many :domain_transfers, dependent: :delete_all
|
||||
|
||||
|
@ -134,10 +132,13 @@ class Domain < ActiveRecord::Base
|
|||
next
|
||||
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(
|
||||
setting: setting,
|
||||
value: x[:value],
|
||||
description: x[:description]
|
||||
)
|
||||
end
|
||||
|
@ -176,7 +177,7 @@ class Domain < ActiveRecord::Base
|
|||
def detach_statuses(status_list)
|
||||
to_delete = []
|
||||
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?
|
||||
add_epp_error('2303', 'status', x[:value], [:domain_statuses, :not_found])
|
||||
else
|
||||
|
|
|
@ -7,11 +7,31 @@ class DomainStatus < ActiveRecord::Base
|
|||
}
|
||||
|
||||
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
|
||||
{
|
||||
|
|
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.
|
||||
|
||||
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
|
||||
enable_extension "plpgsql"
|
||||
|
@ -84,8 +84,8 @@ ActiveRecord::Schema.define(version: 20140828133057) do
|
|||
|
||||
create_table "domain_statuses", force: true do |t|
|
||||
t.integer "domain_id"
|
||||
t.integer "setting_id"
|
||||
t.string "description"
|
||||
t.string "value"
|
||||
end
|
||||
|
||||
create_table "domain_transfers", force: true do |t|
|
||||
|
|
|
@ -308,7 +308,7 @@ describe 'EPP Domain', epp: true do
|
|||
|
||||
it 'returns domain info' do
|
||||
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')
|
||||
|
||||
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.first.description).to eq('Payment overdue.')
|
||||
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')
|
||||
|
||||
|
@ -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][:value]).to eq('ns1.example.com')
|
||||
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)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue