diff --git a/app/helpers/epp/domains_helper.rb b/app/helpers/epp/domains_helper.rb
index 67b3a28a6..fac6986bb 100644
--- a/app/helpers/epp/domains_helper.rb
+++ b/app/helpers/epp/domains_helper.rb
@@ -1,6 +1,7 @@
module Epp::DomainsHelper
def create_domain
@domain = Domain.new(domain_create_params)
+ @domain.create_contacts(domain_contacts)
if @domain.save
render '/epp/domains/create'
@@ -20,7 +21,6 @@ module Epp::DomainsHelper
def domain_create_params
ph = params_hash['epp']['command']['create']['create']
-
{
name: ph[:name],
registrar_id: current_epp_user.registrar.try(:id),
@@ -32,6 +32,21 @@ module Epp::DomainsHelper
}
end
+ def domain_contacts
+ parsed_frame = Nokogiri::XML(params[:frame]).remove_namespaces!
+
+ res = {tech: [], admin: []}
+ parsed_frame.css('contact[type="tech"]').each do |x|
+ res[:tech] << Hash.from_xml(x.to_s)
+ end
+
+ parsed_frame.css('contact[type="admin"]').each do |x|
+ res[:admin] << Hash.from_xml(x.to_s)
+ end
+
+ res
+ end
+
def handle_domain_name_errors
[:epp_domain_taken, :epp_domain_reserved].each do |x|
if @domain.errors.added?(:name, x)
diff --git a/app/models/domain.rb b/app/models/domain.rb
index 56e606025..390ca525c 100644
--- a/app/models/domain.rb
+++ b/app/models/domain.rb
@@ -21,6 +21,12 @@ class Domain < ActiveRecord::Base
write_attribute(:name_dirty, value)
end
+ def create_contacts(contacts)
+ contacts[:tech].each do |x|
+
+ end
+ end
+
class << self
def check_availability(domains)
domains = [domains] if domains.is_a?(String)
diff --git a/spec/epp/requests/domains/create.xml b/spec/epp/requests/domains/create.xml
index f82d25059..a01ffbcea 100644
--- a/spec/epp/requests/domains/create.xml
+++ b/spec/epp/requests/domains/create.xml
@@ -13,6 +13,7 @@
jd1234
sh8013
sh8013
+ sh801333
2fooBAR