Move xml parsing to epp constraint #2752

This commit is contained in:
Martin Lensment 2015-07-23 13:31:22 +03:00
parent 2148cc57e5
commit c94da28af6
2 changed files with 5 additions and 5 deletions

View file

@ -10,16 +10,16 @@ class EppConstraint
# creates parsed_frame, detects epp request object
def matches?(request)
parsed_frame = Nokogiri::XML(request.params[:raw_frame])
request.params[:nokogiri_frame] ||= Nokogiri::XML(request.params[:raw_frame])
request.params[:parsed_frame] ||= request.params[:nokogiri_frame].dup.remove_namespaces!
unless [:keyrelay, :poll, :session].include?(@type)
element = "//#{@type}:#{request.params[:action]}"
return false if parsed_frame.xpath("#{element}", OBJECT_TYPES[@type]).none?
return false if request.params[:nokogiri_frame].xpath("#{element}", OBJECT_TYPES[@type]).none?
# TODO: Support multiple schemas
request.params[:schema] = OBJECT_TYPES[@type][@type].split('/').last
end
request.params[:parsed_frame] = parsed_frame.remove_namespaces!
request.params[:epp_object_type] = @type
true
end