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