class CPEE::ModelManagement::PutItem
Public Instance Methods
response()
click to toggle source
# File lib/cpee-model-management/implementation.rb, line 528 def response where = @a[0] == :main ? '' : Riddl::Protocols::Utils::unescape(@r[-2]) conns = @a[1] models = @a[2] name = File.basename(@r.last,'.xml') cont = @p[0].value.read dn = CPEE::ModelManagement::get_dn @h['DN'] fname = File.join(models,where,name + '.xml') if File.exists?(fname) author = dn['GN'] + ' ' + dn['SN'] attrs = {} XML::Smart.string(cont) do |doc| doc.register_namespace 'p', 'http://cpee.org/ns/properties/2.0' doc.find('/p:testset/p:attributes/p:author').each do |ele| ele.text = dn['GN'] + ' ' + dn['SN'] end if doc.find('/p:testset/p:attributes/p:design_stage').empty? doc.find('/p:testset/p:attributes').first.add('p:design_stage','draft') else doc.find('/p:testset/p:attributes/p:design_stage').each do |ele| ele.text = 'draft' if ele.text.strip == '' end end attrs = doc.find('/p:testset/p:attributes/*').map do |e| [e.qname.name,e.text] end.to_h File.write(fname,doc.to_s) end File.write(fname + '.attrs',JSON::pretty_generate(attrs)) CPEE::ModelManagement::op author, 'add', models, File.join('.', where, name + '.xml') CPEE::ModelManagement::notify conns, 'put', models, fname else @status = 400 end end