mirror of
https://github.com/internetee/registry.git
synced 2025-05-16 17:37:17 +02:00
Better naming and domain updating
This commit is contained in:
parent
fe54f327d9
commit
8b8a71c4d1
6 changed files with 50 additions and 22 deletions
|
@ -42,6 +42,9 @@ module Epp::Common
|
|||
obj.construct_epp_errors
|
||||
@errors += obj.errors[:epp_errors]
|
||||
end
|
||||
|
||||
# for debugging
|
||||
@errors << {code: '1', msg: 'handle_errors was executed when there were actually no errors'} if @errors.blank?
|
||||
render '/epp/error'
|
||||
end
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ module Epp::DomainsHelper
|
|||
Domain.transaction do
|
||||
@domain = Domain.new(domain_create_params)
|
||||
|
||||
handle_errors(@domain) and return unless @domain.attach_objects(@ph, parsed_frame)
|
||||
handle_errors(@domain) and return unless @domain.parse_and_attach_domain_dependencies(@ph, parsed_frame)
|
||||
handle_errors(@domain) and return unless @domain.save
|
||||
|
||||
render '/epp/domains/success'
|
||||
|
@ -38,8 +38,10 @@ module Epp::DomainsHelper
|
|||
@domain = find_domain
|
||||
|
||||
handle_errors(@domain) and return unless @domain
|
||||
handle_errors(@domain) and return unless @domain.attach_objects(@ph, parsed_frame.css('add'))
|
||||
handle_errors(@domain) and return unless @domain.detach_objects(@ph, parsed_frame.css('rem'))
|
||||
handle_errors(@domain) and return unless @domain.parse_and_attach_domain_dependencies(@ph, parsed_frame.css('add'))
|
||||
handle_errors(@domain) and return unless @domain.parse_and_detach_domain_dependencies(parsed_frame.css('rem'))
|
||||
handle_errors(@domain) and return unless @domain.parse_and_update_domain_dependencies(parsed_frame.css('chg'))
|
||||
handle_errors(@domain) and return unless @domain.parse_and_update_domain_attributes(parsed_frame.css('chg'))
|
||||
handle_errors(@domain) and return unless @domain.save
|
||||
|
||||
render '/epp/domains/success'
|
||||
|
|
|
@ -51,7 +51,7 @@ class Domain < ActiveRecord::Base
|
|||
|
||||
### CREATE & UPDATE ###
|
||||
|
||||
def attach_objects(ph, parsed_frame)
|
||||
def parse_and_attach_domain_dependencies(ph, parsed_frame)
|
||||
attach_owner_contact(ph[:registrant]) if ph[:registrant]
|
||||
attach_contacts(self.class.parse_contacts_from_frame(parsed_frame))
|
||||
attach_nameservers(self.class.parse_nameservers_from_frame(parsed_frame))
|
||||
|
@ -60,7 +60,7 @@ class Domain < ActiveRecord::Base
|
|||
errors.empty?
|
||||
end
|
||||
|
||||
def detach_objects(ph, parsed_frame)
|
||||
def parse_and_detach_domain_dependencies(parsed_frame)
|
||||
detach_contacts(self.class.parse_contacts_from_frame(parsed_frame))
|
||||
detach_nameservers(self.class.parse_nameservers_from_frame(parsed_frame))
|
||||
detach_statuses(self.class.parse_statuses_from_frame(parsed_frame))
|
||||
|
@ -68,6 +68,19 @@ class Domain < ActiveRecord::Base
|
|||
errors.empty?
|
||||
end
|
||||
|
||||
def parse_and_update_domain_dependencies(parsed_frame)
|
||||
owner_contact_code = parsed_frame.css('registrant').try(:text)
|
||||
attach_owner_contact(owner_contact_code) if owner_contact_code.present?
|
||||
|
||||
errors.empty?
|
||||
end
|
||||
|
||||
def parse_and_update_domain_attributes(parsed_frame)
|
||||
assign_attributes(self.class.parse_update_params_from_frame(parsed_frame))
|
||||
|
||||
errors.empty?
|
||||
end
|
||||
|
||||
def attach_owner_contact(code)
|
||||
self.owner_contact = Contact.find_by(code: code)
|
||||
|
||||
|
@ -324,6 +337,15 @@ class Domain < ActiveRecord::Base
|
|||
res
|
||||
end
|
||||
|
||||
def parse_update_params_from_frame(parsed_frame)
|
||||
ret = {}
|
||||
return ret if parsed_frame.blank?
|
||||
|
||||
ret[:auth_info] = parsed_frame.css('pw').try(:text)
|
||||
|
||||
ret.compact
|
||||
end
|
||||
|
||||
def check_availability(domains)
|
||||
domains = [domains] if domains.is_a?(String)
|
||||
|
||||
|
|
|
@ -309,7 +309,19 @@ describe 'EPP Domain', epp: true do
|
|||
expect(response[:results][2][:result_code]).to eq('2303')
|
||||
expect(response[:results][2][:msg]).to eq('Status was not found')
|
||||
expect(response[:results][2][:value]).to eq('clientHold')
|
||||
end
|
||||
|
||||
it 'updates a domain' do
|
||||
Fabricate(:contact, code: 'mak21')
|
||||
epp_request('domains/update_add_objects.xml')
|
||||
response = epp_request('domains/update.xml')
|
||||
|
||||
expect(response[:results][0][:result_code]).to eq('1000')
|
||||
|
||||
d = Domain.last
|
||||
|
||||
expect(d.owner_contact_code).to eq('mak21')
|
||||
expect(d.auth_info).to eq('2BARfoo')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -5,24 +5,8 @@
|
|||
<domain:update
|
||||
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||
<domain:name>example.ee</domain:name>
|
||||
<domain:add>
|
||||
<domain:ns>
|
||||
<domain:hostObj>ns1.example.com</domain:hostObj>
|
||||
<domain:hostObj>ns2.example.com</domain:hostObj>
|
||||
</domain:ns>
|
||||
<domain:contact type="tech">mak21</domain:contact>
|
||||
<domain:status s="clientHold"
|
||||
lang="en">Payment overdue.</domain:status>
|
||||
</domain:add>
|
||||
<domain:rem>
|
||||
<domain:ns>
|
||||
<domain:hostObj>ns1.example.com</domain:hostObj>
|
||||
</domain:ns>
|
||||
<domain:contact type="tech">sh8013</domain:contact>
|
||||
<domain:status s="clientUpdateProhibited"/>
|
||||
</domain:rem>
|
||||
<domain:chg>
|
||||
<domain:registrant>sh8013</domain:registrant>
|
||||
<domain:registrant>mak21</domain:registrant>
|
||||
<domain:authInfo>
|
||||
<domain:pw>2BARfoo</domain:pw>
|
||||
</domain:authInfo>
|
||||
|
|
|
@ -42,6 +42,11 @@ module Epp
|
|||
obj
|
||||
end
|
||||
|
||||
#print output
|
||||
def po(r)
|
||||
puts r[:parsed].to_s
|
||||
end
|
||||
|
||||
### REQUEST TEMPLATES ###
|
||||
|
||||
def domain_create_xml(xml_params={})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue