def response
backend = @a[0]
handler = @a[1]
EM.defer{handler.read} unless handler.nil?
query = (@p[0].value.to_s.strip.empty? ? '*' : @p[0].value)
begin
e = backend.data.find(query)
rescue => e
prop = XML::Smart::string("<not-existing xmlns=\"http://riddl.org/ns/common-patterns/properties/1.0\"/>").to_s
return Riddl::Parameter::Complex.new("value","text/xml",prop.to_s)
end
if e.class == XML::Smart::Dom::NodeSet
if e.any?
prop = XML::Smart::string("<value xmlns=\"http://riddl.org/ns/common-patterns/properties/1.0\"/>")
prop.root.add(e)
else
prop = XML::Smart::string("<not-existing xmlns=\"http://riddl.org/ns/common-patterns/properties/1.0\"/>").to_s
end
return Riddl::Parameter::Complex.new("value","text/xml",prop.to_s)
else
return Riddl::Parameter::Simple.new("value",e.to_s)
end
end