mirror of
https://github.com/internetee/registry.git
synced 2025-07-03 01:33:36 +02:00
Merge branch 'master' of github.com:internetee/registry
This commit is contained in:
commit
d81b346035
8 changed files with 82 additions and 16 deletions
|
@ -120,7 +120,9 @@ module Epp::ContactsHelper
|
|||
contact_hash = contact_hash.merge({
|
||||
address_attributes: {
|
||||
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]
|
||||
}
|
||||
}) if ph[:postalInfo].is_a?(Hash) && ph[:postalInfo][:addr].is_a?(Hash)
|
||||
|
@ -135,16 +137,6 @@ module Epp::ContactsHelper
|
|||
return false
|
||||
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
|
||||
result = params[:frame].slice(/(?<=\<ns2:ident type=)(.*)(?=<)/)
|
||||
|
||||
|
|
6
db/migrate/20140813102245_add_streets_to_address.rb
Normal file
6
db/migrate/20140813102245_add_streets_to_address.rb
Normal file
|
@ -0,0 +1,6 @@
|
|||
class AddStreetsToAddress < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :addresses, :street2, :string
|
||||
add_column :addresses, :street3, :string
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# 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
|
||||
enable_extension "plpgsql"
|
||||
|
@ -24,6 +24,8 @@ ActiveRecord::Schema.define(version: 20140808132327) do
|
|||
t.string "zip"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "street2"
|
||||
t.string "street3"
|
||||
end
|
||||
|
||||
create_table "contacts", force: true do |t|
|
||||
|
|
|
@ -7,22 +7,49 @@ describe 'EPP Contact', epp: true do
|
|||
before(:each) { Fabricate(:epp_user) }
|
||||
|
||||
#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')
|
||||
expect(response[:results][0][: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][1][:msg]).to eq('Required parameter missing: authInfo')
|
||||
expect(response[:results].count).to eq 2
|
||||
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')
|
||||
|
||||
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 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
|
||||
it 'creates a contact' do
|
||||
response = epp_request('contacts/create.xml')
|
||||
|
@ -34,6 +61,11 @@ describe 'EPP Contact', epp: true do
|
|||
|
||||
expect(Contact.count).to eq(1)
|
||||
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
|
||||
|
||||
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')
|
||||
|
||||
expect(Contact.first.updated_by_id).to be 1
|
||||
expect(Contact.first.updated_by_id).to eq 1
|
||||
end
|
||||
|
||||
#TODO tests for missing/invalid/etc ident
|
||||
|
|
11
spec/epp/requests/contacts/check_missing_attr.xml
Normal file
11
spec/epp/requests/contacts/check_missing_attr.xml
Normal 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>
|
11
spec/epp/requests/contacts/delete_missing_attr.xml
Normal file
11
spec/epp/requests/contacts/delete_missing_attr.xml
Normal 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>
|
11
spec/epp/requests/contacts/info_missing_attr.xml
Normal file
11
spec/epp/requests/contacts/info_missing_attr.xml
Normal 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>
|
|
@ -1,5 +1,6 @@
|
|||
Fabricator(:address) do
|
||||
city Faker::Address.city
|
||||
street Faker::Address.street_name
|
||||
street Faker::Address.street_name
|
||||
zip Faker::Address.zip
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue