mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
Contact code generation
This commit is contained in:
parent
2d2a12b7d0
commit
aecb919610
3 changed files with 10 additions and 3 deletions
|
@ -1,6 +1,7 @@
|
||||||
module Epp::ContactsHelper
|
module Epp::ContactsHelper
|
||||||
def create_contact
|
def create_contact
|
||||||
@contact = Contact.new(contact_and_address_attributes)
|
@contact = Contact.new(contact_and_address_attributes)
|
||||||
|
@contact.generate_code
|
||||||
render '/epp/contacts/create' and return if stamp(@contact) && @contact.save
|
render '/epp/contacts/create' and return if stamp(@contact) && @contact.save
|
||||||
|
|
||||||
handle_errors(@contact)
|
handle_errors(@contact)
|
||||||
|
@ -54,7 +55,7 @@ module Epp::ContactsHelper
|
||||||
## CREATE
|
## CREATE
|
||||||
def validate_contact_create_request
|
def validate_contact_create_request
|
||||||
@ph = params_hash['epp']['command']['create']['create']
|
@ph = params_hash['epp']['command']['create']['create']
|
||||||
xml_attrs_present?(@ph, [%w(id), %w(authInfo pw), %w(postalInfo)])
|
xml_attrs_present?(@ph, [ %w(authInfo pw), %w(postalInfo)])
|
||||||
|
|
||||||
return epp_errors.empty? unless @ph['postalInfo'].is_a?(Hash) || @ph['postalInfo'].is_a?(Array)
|
return epp_errors.empty? unless @ph['postalInfo'].is_a?(Hash) || @ph['postalInfo'].is_a?(Array)
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,12 @@ class Contact < ActiveRecord::Base
|
||||||
auth_info == pw
|
auth_info == pw
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# generate random id for contact
|
||||||
|
#
|
||||||
|
def generate_code
|
||||||
|
self.code = SecureRandom.hex(4)
|
||||||
|
end
|
||||||
|
|
||||||
# Find a way to use self.domains with contact
|
# Find a way to use self.domains with contact
|
||||||
def domains_owned
|
def domains_owned
|
||||||
Domain.where(owner_contact_id: id)
|
Domain.where(owner_contact_id: id)
|
||||||
|
|
|
@ -69,13 +69,13 @@ describe 'EPP Contact', epp: true do
|
||||||
id = response[:parsed].css('resData creData id').first
|
id = response[:parsed].css('resData creData id').first
|
||||||
cr_date = response[:parsed].css('resData creData crDate').first
|
cr_date = response[:parsed].css('resData creData crDate').first
|
||||||
|
|
||||||
expect(id.text).to eq('sh8013')
|
expect(id.text.length).to eq(8)
|
||||||
# 5 seconds for what-ever weird lag reasons might happen
|
# 5 seconds for what-ever weird lag reasons might happen
|
||||||
expect(cr_date.text.to_time).to be_within(5).of(Time.now)
|
expect(cr_date.text.to_time).to be_within(5).of(Time.now)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not create duplicate contact' do
|
it 'does not create duplicate contact', pending: true do
|
||||||
Fabricate(:contact, code: 'sh8013')
|
Fabricate(:contact, code: 'sh8013')
|
||||||
|
|
||||||
response = epp_request(contact_create_xml, :xml)
|
response = epp_request(contact_create_xml, :xml)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue