This commit is contained in:
Martin Lensment 2014-07-02 17:30:50 +03:00
parent 2187be6364
commit acb65c47d6
7 changed files with 39 additions and 70 deletions

View file

@ -15,19 +15,7 @@ module Epp::Common
end
def get_params_hash(path)
node_set = parsed_frame.css(path).children.select{ |x| x.element? && x.element_children.empty? }
node_set.inject({}) do |hash, obj|
#convert to array if 1 or more attributes with same name
if hash[obj.name.to_sym] && !hash[obj.name.to_sym].is_a?(Array)
hash[obj.name.to_sym] = [hash[obj.name.to_sym]]
hash[obj.name.to_sym] << obj.text.strip
else
hash[obj.name.to_sym] = obj.text.strip
end
hash
end
Hash.from_xml(parsed_frame.css(path).to_xml).with_indifferent_access
end
def epp_session

View file

@ -10,12 +10,14 @@ class Epp::CommandsController < ApplicationController
private
def create
type = OBJECT_TYPES[parsed_frame.css('create create').attr('schemaLocation').value]
ph = get_params_hash('create create')[:create]
type = OBJECT_TYPES[ph[:schemaLocation]]
send("create_#{type}")
end
def check
type = OBJECT_TYPES[parsed_frame.css('check check').attr('schemaLocation').value]
ph = get_params_hash('check check')[:check]
type = OBJECT_TYPES[ph[:schemaLocation]]
send("check_#{type}")
end
end

View file

@ -27,7 +27,7 @@ class Epp::SessionsController < ApplicationController
### HELPER METHODS ###
def login_params
login_params = parsed_frame.css('epp command login')
{ username: login_params.css('clID').text, password: login_params.css('pw').text }
ph = get_params_hash('epp command login')[:login]
{ username: ph[:clID], password: ph[:pw] }
end
end

View file

@ -1,13 +1,5 @@
module Epp::ContactsHelper
def create_contact
ccp = contact_create_params
end
### HELPER METHODS ###
def contact_create_params
{
addr: get_params_hash('epp command create create postalInfo addr')
}
cp = Hash.from_xml(parsed_frame.css("epp command create create").to_xml).with_indifferent_access
end
end

View file

@ -5,28 +5,23 @@ module Epp::DomainsHelper
end
def check_domain
@domains = Domain.check_availability(domain_check_params[:names])
ph = get_params_hash('epp command check check')[:check]
@domains = Domain.check_availability(ph[:name])
render '/epp/domains/check'
end
### HELPER METHODS ###
def domain_create_params
node_set = parsed_frame.css("epp command create create").children.select(&:element?)
command_params = node_set.inject({}) {|hash, obj| hash[obj.name.to_sym] = obj.text;hash }
ph = get_params_hash('epp command create create')[:create]
{
name: command_params[:name],
name: ph[:name],
registrar_id: current_epp_user.registrar.try(:id),
registered_at: Time.now,
valid_from: Date.today,
valid_to: Date.today + command_params[:period].to_i.years,
auth_info: command_params[:authInfo]
valid_to: Date.today + ph[:period].to_i.years,
auth_info: ph[:authInfo]
}
end
def domain_check_params
node_set = parsed_frame.css('epp command check check name')
node_set.inject({names: []}){ |hash, obj| hash[:names] << obj.text; hash }
end
end

View file

@ -20,6 +20,8 @@ class Domain < ActiveRecord::Base
class << self
def check_availability(domains)
domains = [domains] if domains.is_a?(String)
res = []
domains.each do |x|
if !DomainNameValidator.validate(x)