class Wsapi::Mapper

Public Class Methods

get_errors(json) click to toggle source
# File lib/wsapi/mapper.rb, line 10
def self.get_errors(json)
  if result = json["QueryResult"]
    result["Errors"]
  elsif result = json["OperationResult"]
    result["Errors"]
  else
    []
  end
end
get_object(response) click to toggle source
# File lib/wsapi/mapper.rb, line 20
def self.get_object(response)
  json = MultiJson.load(response.body)
  if get_errors(json).empty? && json.size == 1
    Wsapi::Object.from_data(json.keys.first, json.values.first)
  else
    raise ApiError.new("Errors: #{get_errors(json).inspect}", response)
  end
rescue MultiJson::LoadError
  raise ApiError.new("Invalid JSON response from WSAPI: #{response.body}", response)
end
get_objects(response) click to toggle source
# File lib/wsapi/mapper.rb, line 31
def self.get_objects(response)
  json = MultiJson.load(response.body)
  if get_errors(json).empty? && query_result = json["QueryResult"]
    query_result["Results"].map { |object| Wsapi::Object.from_data(object["_type"], object) }
  else
    raise ApiError.new("Errors: #{get_errors(json).inspect}", response)
  end
rescue MultiJson::LoadError
  raise ApiError.new("Invalid JSON response from WSAPI: #{response.body}", response)
end