internetee-registry/lib/epp_constraint.rb
2015-01-30 23:28:12 +02:00

24 lines
679 B
Ruby

class EppConstraint
OBJECT_TYPES = {
domain: { domain: 'urn:ietf:params:xml:ns:domain-1.0' },
contact: { contact: 'urn:ietf:params:xml:ns:contact-1.0' }
}
def initialize(type)
@type = type
end
# creates parsed_frame, detects epp request object
def matches?(request)
parsed_frame = Nokogiri::XML(request.params[:raw_frame])
unless [:keyrelay, :poll].include?(@type)
element = "//#{@type}:#{request.params[:action]}"
return false if parsed_frame.xpath("#{element}", OBJECT_TYPES[@type]).none?
end
request.params[:parsed_frame] = parsed_frame.remove_namespaces!
request.params[:epp_object_type] = @type
true
end
end