added dedicated registrant model

This commit is contained in:
Priit Tark 2015-05-11 16:22:43 +03:00
parent 2ed9672eb5
commit 321e28b8c7
10 changed files with 40 additions and 14 deletions

View file

@ -7,7 +7,7 @@ class Domain < ActiveRecord::Base
paginates_per 10 # just for showoff paginates_per 10 # just for showoff
belongs_to :registrar belongs_to :registrar
belongs_to :registrant, class_name: 'Contact' belongs_to :registrant
has_many :domain_contacts, dependent: :destroy has_many :domain_contacts, dependent: :destroy
has_many :admin_domain_contacts has_many :admin_domain_contacts

View file

@ -72,8 +72,9 @@ class Epp::Domain < Domain
def attach_default_contacts def attach_default_contacts
return if registrant.blank? return if registrant.blank?
tech_contacts << registrant if tech_domain_contacts.blank? regt = Registrant.find(registrant.id) # temp for bullet
admin_contacts << registrant if admin_domain_contacts.blank? && registrant.priv? tech_contacts << regt if tech_domain_contacts.blank?
admin_contacts << regt if admin_domain_contacts.blank? && regt.priv?
end end
# rubocop: disable Metrics/PerceivedComplexity # rubocop: disable Metrics/PerceivedComplexity
@ -84,10 +85,9 @@ class Epp::Domain < Domain
code = frame.css('registrant').first.try(:text) code = frame.css('registrant').first.try(:text)
if code.present? if code.present?
oc = Epp::Contact.find_by_epp_code(code).try(:id) regt = Registrant.find_by(code: code)
if regt
if oc at[:registrant_id] = regt.id
at[:registrant_id] = oc
else else
add_epp_error('2303', 'registrant', code, [:registrant, :not_found]) add_epp_error('2303', 'registrant', code, [:registrant, :not_found])
end end

6
app/models/registrant.rb Normal file
View file

@ -0,0 +1,6 @@
class Registrant < Contact
# epp_code_map is used during epp domain create
def epp_code_map
{}
end
end

View file

@ -124,6 +124,8 @@ Rails.application.routes.draw do
end end
end end
resources :registrants, controller: 'contacts'
resources :contacts do resources :contacts do
collection do collection do
get 'search' get 'search'

View file

@ -715,7 +715,7 @@ describe 'EPP Contact', epp: true do
end end
it 'fails if contact has associated domain' do it 'fails if contact has associated domain' do
@domain = Fabricate(:domain, registrar: @registrar1, registrant: @contact) @domain = Fabricate(:domain, registrar: @registrar1, registrant: Registrant.find(@contact.id))
@domain.registrant.present?.should == true @domain.registrant.present?.should == true
response = delete_request response = delete_request

View file

@ -657,8 +657,8 @@ describe 'EPP Domain', epp: true do
}) })
response = epp_plain_request(xml, :xml) response = epp_plain_request(xml, :xml)
response[:result_code].should == '1000'
response[:msg].should == 'Command completed successfully' response[:msg].should == 'Command completed successfully'
response[:result_code].should == '1000'
response[:clTRID].should == 'ABC-12345' response[:clTRID].should == 'ABC-12345'
Domain.last.tech_contacts.count.should == 1 Domain.last.tech_contacts.count.should == 1

View file

@ -3,11 +3,11 @@ Fabricator(:domain) do
valid_to Date.new(2014, 8, 7) valid_to Date.new(2014, 8, 7)
period 1 period 1
period_unit 'y' period_unit 'y'
registrant(fabricator: :contact) registrant(fabricator: :registrant)
nameservers(count: 3) nameservers(count: 3)
admin_domain_contacts(count: 1) { Fabricate(:admin_domain_contact) } admin_domain_contacts(count: 1) { Fabricate(:admin_domain_contact) }
tech_domain_contacts(count: 1) { Fabricate(:tech_domain_contact) } tech_domain_contacts(count: 1) { Fabricate(:tech_domain_contact) }
registrar registrar { Registrar.find_by_code('FIXED') }
auth_info '98oiewslkfkd' auth_info '98oiewslkfkd'
end end

View file

@ -0,0 +1,18 @@
Fabricator(:registrant) do
registrar { Registrar.find_by_code('FIXED') }
code { sequence(:code) { |i| "REGISTRANT#{Faker::Number.number(8)}#{i}" } }
auth_info 'password'
name { sequence(:name) { |i| "REGISTRANT #{Faker::Name.name}#{i}" } }
phone '+372.12345678'
email Faker::Internet.email
street 'Short street 11'
city 'Tallinn'
zip '11111'
country_code 'EE'
ident '37605030299'
ident_type 'priv'
ident_country_code 'EE'
# rubocop: disable Style/SymbolProc
after_validation { |c| c.disable_generate_auth_info! }
# rubocop: enamble Style/SymbolProc
end

View file

@ -318,13 +318,13 @@ describe Contact, '.destroy_orphans' do
end end
it 'should find one orphan' do it 'should find one orphan' do
Fabricate(:domain, registrant: @contact_1) Fabricate(:domain, registrant: Registrant.find(@contact_1.id))
Contact.find_orphans.count.should == 1 Contact.find_orphans.count.should == 1
Contact.find_orphans.last.should == @contact_2 Contact.find_orphans.last.should == @contact_2
end end
it 'should find no orphans' do it 'should find no orphans' do
Fabricate(:domain, registrant: @contact_1, admin_contacts: [@contact_2]) Fabricate(:domain, registrant: Registrant.find(@contact_1.id), admin_contacts: [@contact_2])
cc = Contact.count cc = Contact.count
Contact.find_orphans.count.should == 0 Contact.find_orphans.count.should == 0
Contact.destroy_orphans Contact.destroy_orphans

View file

@ -65,7 +65,7 @@ describe WhoisRecord do
name: 'First Registrar Ltd', name: 'First Registrar Ltd',
created_at: Time.zone.parse('1995.01.01'), created_at: Time.zone.parse('1995.01.01'),
updated_at: Time.zone.parse('1996.01.01')) updated_at: Time.zone.parse('1996.01.01'))
@domain.registrant = Fabricate(:contact, @domain.registrant = Fabricate(:registrant,
name: 'Jarren Jakubowski0', name: 'Jarren Jakubowski0',
created_at: Time.zone.parse('2005.01.01')) created_at: Time.zone.parse('2005.01.01'))
@domain.admin_contacts = [Fabricate(:contact, @domain.admin_contacts = [Fabricate(:contact,