Class: CPEE::Instantiation::ContinueTask

Inherits:
Riddl::Implementation
  • Object
show all
Defined in:
lib/cpee/instantiation.rb

Overview

}}}

Instance Method Summary collapse

Instance Method Details

#responseObject

{{{



199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# File 'lib/cpee/instantiation.rb', line 199

def response
  cpee         = @a[0]
  cblist       = @a[1]
  topic        = @p[1].value
  event_name   = @p[2].value
  notification = JSON.parse(@p[3].value)

  key = @r.last
  cb, condition, instance, instance_url = cblist.lrange(key,0,-1)
  if notification['state'] == condition
    cblist.del(key)
    srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
    res = srv.resource("/#{instance}/properties/values/dataelements")
    status, response = res.get
    send = { 'CPEE-INSTANCE' => instance_url }
    if status >= 200 && status < 300
      doc = XML::Smart.string(response[0].value.read)
      doc.register_namespace 'p', 'http://riddl.org/ns/common-patterns/properties/1.0'
      doc.find('/p:value/*').each do |e|
        send[e.qname.name] = e.text
      end
    end
    Riddl::Client.new(cb).put [
      Riddl::Parameter::Complex.new('dataelements','application/json',JSON::generate(send))
    ]
  end
end