Merge branch 'master' of github.com:internetee/registry

This commit is contained in:
Martin Lensment 2014-08-13 13:53:22 +03:00
commit d81b346035
8 changed files with 82 additions and 16 deletions

View file

@ -120,7 +120,9 @@ module Epp::ContactsHelper
contact_hash = contact_hash.merge({ contact_hash = contact_hash.merge({
address_attributes: { address_attributes: {
country_id: Country.find_by(iso: ph[:postalInfo][:addr][:cc]), country_id: Country.find_by(iso: ph[:postalInfo][:addr][:cc]),
street: tidy_street, street: ph[:postalInfo][:addr][:street][0],
street2: ph[:postalInfo][:addr][:street][1],
street3: ph[:postalInfo][:addr][:street][2],
zip: ph[:postalInfo][:addr][:pc] zip: ph[:postalInfo][:addr][:pc]
} }
}) if ph[:postalInfo].is_a?(Hash) && ph[:postalInfo][:addr].is_a?(Hash) }) if ph[:postalInfo].is_a?(Hash) && ph[:postalInfo][:addr].is_a?(Hash)
@ -135,16 +137,6 @@ module Epp::ContactsHelper
return false return false
end end
def tidy_street
command = params[:command]
street = params_hash['epp']['command'][command][command][:postalInfo][:addr][:street]
return street if street.is_a? String
return street.join(',') if street.is_a? Array
return nil
rescue NoMethodError => e #refactor so wouldn't use rescue for flow control
return nil
end
def ident_type def ident_type
result = params[:frame].slice(/(?<=\<ns2:ident type=)(.*)(?=<)/) result = params[:frame].slice(/(?<=\<ns2:ident type=)(.*)(?=<)/)

View file

@ -0,0 +1,6 @@
class AddStreetsToAddress < ActiveRecord::Migration
def change
add_column :addresses, :street2, :string
add_column :addresses, :street3, :string
end
end

View file

@ -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: 20140808132327) do ActiveRecord::Schema.define(version: 20140813102245) 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"
@ -24,6 +24,8 @@ ActiveRecord::Schema.define(version: 20140808132327) do
t.string "zip" t.string "zip"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.string "street2"
t.string "street3"
end end
create_table "contacts", force: true do |t| create_table "contacts", force: true do |t|

View file

@ -7,22 +7,49 @@ describe 'EPP Contact', epp: true do
before(:each) { Fabricate(:epp_user) } before(:each) { Fabricate(:epp_user) }
#Tests for the new error system #Tests for the new error system
it "doesn't create contact with attributes missing" do it "doesn't create contact if request is invalid" do
response = epp_request('contacts/create_missing_attr.xml') response = epp_request('contacts/create_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003') expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][1][:result_code]).to eq('2003') expect(response[:results][1][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: cc') 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][1][:msg]).to eq('Required parameter missing: authInfo')
expect(response[:results].count).to eq 2
end end
it "doesn't update contact with attributes missing" do it "doesn't update contact if request is invalid" do
response = epp_request('contacts/update_missing_attr.xml') response = epp_request('contacts/update_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003') expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id') expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end end
it "doesn't delete contact if request is invalid" do
response = epp_request('contacts/delete_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end
it "doesn't check contact if request is invalid" do
response = epp_request('contacts/delete_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end
it "doesn't display info if request invalid" do
response = epp_request('contacts/delete_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end
# incomplete # incomplete
it 'creates a contact' do it 'creates a contact' do
response = epp_request('contacts/create.xml') response = epp_request('contacts/create.xml')
@ -34,6 +61,11 @@ describe 'EPP Contact', epp: true do
expect(Contact.count).to eq(1) expect(Contact.count).to eq(1)
expect(Contact.first.org_name).to eq('Example Inc.') expect(Contact.first.org_name).to eq('Example Inc.')
expect(Contact.first.address.street).to eq('123 Example Dr.')
expect(Contact.first.address.street2).to eq('Suite 100')
expect(Contact.first.address.street3).to eq nil
end end
it 'returns result data upon succesful contact creation' do it 'returns result data upon succesful contact creation' do
@ -67,7 +99,7 @@ describe 'EPP Contact', epp: true do
response = epp_request('contacts/update.xml') response = epp_request('contacts/update.xml')
expect(Contact.first.updated_by_id).to be 1 expect(Contact.first.updated_by_id).to eq 1
end end
#TODO tests for missing/invalid/etc ident #TODO tests for missing/invalid/etc ident

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<check>
<contact:check
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
</contact:check>
</check>
<clTRID>ABC-12345</clTRID>
</command>
</epp>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<delete>
<contact:delete
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
</contact:delete>
</delete>
<clTRID>ABC-12345</clTRID>
</command>
</epp>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<info>
<contact:info
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
</contact:info>
</info>
<clTRID>ABC-12345</clTRID>
</command>
</epp>

View file

@ -1,5 +1,6 @@
Fabricator(:address) do Fabricator(:address) do
city Faker::Address.city city Faker::Address.city
street Faker::Address.street_name street Faker::Address.street_name
street Faker::Address.street_name
zip Faker::Address.zip zip Faker::Address.zip
end end