From 338f85224a60f83780ce0416088f52609cca7640 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 30 Jul 2014 17:09:41 +0300 Subject: [PATCH] Parse contact information on domain creation --- app/helpers/epp/domains_helper.rb | 17 ++++++++++++++++- app/models/domain.rb | 6 ++++++ spec/epp/requests/domains/create.xml | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) 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