def parse_response(response)
result = RHC::Json.decode(response)
type = result['type']
data = result['data'] || {}
messages = Array(result['messages']).map do |m|
m['text'] if m['field'].nil? or m['field'] == 'result'
end.compact
data.each{ |d| d['messages'] = messages } if data.is_a?(Array)
data['messages'] = messages if data.is_a?(Hash)
case type
when 'domains'
domains = Array.new
data.each do |domain_json|
domains.push(Domain.new(domain_json, debug?))
end
return domains
when 'domain'
return Domain.new(data, debug?)
when 'applications'
apps = Array.new
data.each do |app_json|
apps.push(Application.new(app_json, debug?))
end
return apps
when 'application'
app = Application.new(data, debug?)
return app
when 'cartridges'
carts = Array.new
data.each do |cart_json|
carts.push(Cartridge.new(cart_json, debug?))
end
return carts
when 'cartridge'
return Cartridge.new(data, debug?)
when 'user'
return User.new(data, debug?)
when 'keys'
keys = Array.new
data.each do |key_json|
keys.push(Key.new(key_json, debug?))
end
return keys
when 'key'
return Key.new(data, debug?)
when 'gear_groups'
gears = Array.new
data.each do |gear_json|
gears.push(GearGroup.new(gear_json, debug?))
end
return gears
else
data
end
end