def response
id = @a[0]
opts = @a[1]
key = @r[-1]
if CPEE::Persistence::exists_handler?(id,opts,key)
Riddl::Parameter::Complex.new("subscriptions","text/xml") do
ret = XML::Smart::string <<-END
<subscription xmlns='http://riddl.org/ns/common-patterns/notifications-producer/2.0'/>
END
url = CPEE::Persistence::extract_item(id,opts,File.join('handlers',key,'url'))
ret.root.attributes['id'] = key
ret.root.attributes['url'] = url if url && !url.empty?
items = {}
CPEE::Persistence::extract_handler(id,opts,key).each do |h|
t, i, v = h.split('/')
items[t] ||= []
items[t] << [i,v]
end
items.each do |k,v|
ret.root.add('topic').tap do |n|
n.attributes['id'] = k
v.each do |e|
n.add *e
end
end
end
ret.to_s
end
else
@status = 404
end
end