mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
Contact create spec xml builder
This commit is contained in:
parent
793b0d22ff
commit
6729622974
2 changed files with 62 additions and 7 deletions
|
@ -8,13 +8,16 @@ describe 'EPP Contact', epp: true do
|
|||
|
||||
#Tests for the new error system
|
||||
it "doesn't create contact if request is invalid" do
|
||||
response = epp_request('contacts/create_missing_attr.xml')
|
||||
response = epp_request(contact_create_xml( { authInfo: [false], addr: { cc: false, city: false } } ), :xml)
|
||||
|
||||
expect(response[:results][0][:result_code]).to eq('2003')
|
||||
expect(response[:results][1][:result_code]).to eq('2003')
|
||||
expect(response[:results][2][:result_code]).to eq('2003')
|
||||
|
||||
expect(response[:results][0][:msg]).to eq('Required parameter missing: cc')
|
||||
expect(response[:results][1][:msg]).to eq('Required parameter missing: authInfo')
|
||||
expect(response[:results].count).to eq 2
|
||||
expect(response[:results][0][:msg]).to eq('Required parameter missing: city')
|
||||
expect(response[:results][1][:msg]).to eq('Required parameter missing: cc')
|
||||
expect(response[:results][2][:msg]).to eq('Required parameter missing: authInfo')
|
||||
expect(response[:results].count).to eq 3
|
||||
end
|
||||
|
||||
it "doesn't update contact if request is invalid" do
|
||||
|
@ -52,7 +55,9 @@ describe 'EPP Contact', epp: true do
|
|||
|
||||
# incomplete
|
||||
it 'creates a contact' do
|
||||
response = epp_request('contacts/create.xml')
|
||||
#response = epp_request('contacts/create.xml')
|
||||
response = epp_request(contact_create_xml, :xml)
|
||||
|
||||
expect(response[:result_code]).to eq('1000')
|
||||
expect(response[:msg]).to eq('Command completed successfully')
|
||||
expect(response[:clTRID]).to eq('ABC-12345')
|
||||
|
@ -69,7 +74,8 @@ describe 'EPP Contact', epp: true do
|
|||
end
|
||||
|
||||
it 'returns result data upon succesful contact creation' do
|
||||
response = epp_request('contacts/create.xml')
|
||||
response = epp_request(contact_create_xml, :xml)
|
||||
#response = epp_request('contacts/create.xml')
|
||||
expect(response[:result_code]).to eq('1000')
|
||||
expect(response[:msg]).to eq('Command completed successfully')
|
||||
|
||||
|
@ -85,7 +91,8 @@ describe 'EPP Contact', epp: true do
|
|||
it 'does not create duplicate contact' do
|
||||
Fabricate(:contact, code: 'sh8013')
|
||||
|
||||
response = epp_request('contacts/create.xml')
|
||||
response = epp_request(contact_create_xml, :xml)
|
||||
#response = epp_request('contacts/create.xml')
|
||||
expect(response[:result_code]).to eq('2302')
|
||||
expect(response[:msg]).to eq('Contact id already exists')
|
||||
|
||||
|
|
|
@ -23,6 +23,54 @@ module EppContactXmlBuilder
|
|||
end
|
||||
end
|
||||
|
||||
def contact_create_xml(xml_params={})
|
||||
#xml_params[:ids] = xml_params[:ids] || [ { id: 'check-1234' }, { id: 'check-4321' } ]
|
||||
xml = Builder::XmlMarkup.new
|
||||
|
||||
xml_params[:addr] = xml_params[:addr] || { street: '123 Example Dr.', street2: 'Suite 100', street3: nil,
|
||||
city: 'Megaton' , sp: 'F3 ' , pc: '201-33' , cc: 'EE' }
|
||||
xml_params[:authInfo] = xml_params[:authInfo] || { pw: 'Aas34fq' }
|
||||
|
||||
|
||||
xml.instruct!(:xml, standalone: 'no')
|
||||
xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0') do
|
||||
xml.command do
|
||||
xml.create do
|
||||
xml.tag!('contact:create', 'xmlns:contact' => 'urn:ietf:params:xml:ns:contact-1.0') do
|
||||
xml.tag!('contact:id', xml_params[:id], 'sh8013') unless xml_params[:id] == false
|
||||
unless xml_params[:postalInfo] == [false]
|
||||
xml.tag!('contact:postalInfo') do
|
||||
xml.tag!('contact:name', ( xml_params[:name] || 'Sillius Soddus' )) unless xml_params[:name] == false
|
||||
xml.tag!('contact:org', ( xml_params[:org_name] || 'Example Inc.' )) unless xml_params[:org_name] == false
|
||||
unless xml_params[:addr] == [false]
|
||||
xml.tag!('contact:addr') do
|
||||
xml.tag!('contact:street', xml_params[:addr][:street] ) unless xml_params[:addr][:street] == false
|
||||
xml.tag!('contact:street', xml_params[:addr][:street2] ) unless xml_params[:addr][:street2] == false
|
||||
xml.tag!('contact:street', xml_params[:addr][:street3] ) unless xml_params[:addr][:street3] == false
|
||||
xml.tag!('contact:city' , xml_params[:addr][:city] ) unless xml_params[:addr][:city] == false
|
||||
xml.tag!('contact:sp' , xml_params[:addr][:sp] ) unless xml_params[:addr][:sp] == false
|
||||
xml.tag!('contact:pc' , xml_params[:addr][:pc] ) unless xml_params[:addr][:pc] == false
|
||||
xml.tag!('contact:cc' , xml_params[:addr][:cc] ) unless xml_params[:addr][:cc] == false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
xml.tag!('contact:voice', (xml_params[:voice] || '+372.1234567')) unless xml_params[:voice] == false
|
||||
xml.tag!('contact:fax', (xml_params[:fax] || '123123' )) unless xml_params[:fax] == false
|
||||
xml.tag!('contact:email', (xml_params[:email] || 'example@test.example')) unless xml_params[:email] == false
|
||||
xml.tag!('contact:ident', (xml_params[:ident] || '37605030299')) unless xml_params[:ident] == false
|
||||
unless xml_params[:authInfo] == [false]
|
||||
xml.tag!('contact:authInfo') do
|
||||
xml.tag!('contact:pw', xml_params[:authInfo][:pw] ) unless xml_params[:authInfo][:pw] == false
|
||||
end
|
||||
end
|
||||
#Disclosure logic
|
||||
end
|
||||
end
|
||||
xml.clTRID 'ABC-12345'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue