lib/parse/query.rb in parse-ruby-client-0.1.15 vs lib/parse/query.rb in parse-ruby-client-0.2.0
- old
+ new
@@ -123,10 +123,20 @@
query = { "where" => CGI.escape(where_as_json.to_json) }
set_order(query)
[:count, :limit, :skip, :include].each {|a| merge_attribute(a, query)}
Parse.client.logger.info{"Parse query for #{uri} #{CGI.unescape(query.inspect)}"}
response = Parse.client.request uri, :get, nil, query
- Parse.parse_json class_name, response
+
+ if response.is_a?(Hash) && response.has_key?(Protocol::KEY_RESULTS) && response[Protocol::KEY_RESULTS].is_a?(Array)
+ parsed_results = response[Protocol::KEY_RESULTS].map{|o| Parse.parse_json(class_name, o)}
+ if response.keys.size == 1
+ parsed_results
+ else
+ response.dup.merge(Protocol::KEY_RESULTS => parsed_results)
+ end
+ else
+ raise ParseError.new("query response not a Hash with #{Protocol::KEY_RESULTS} key: #{response.class} #{response.inspect}")
+ end
end
private
def set_order(query)