lib/quandl/client/middleware/parse_json.rb in quandl_client-2.1.4 vs lib/quandl/client/middleware/parse_json.rb in quandl_client-2.2.0
- old
+ new
@@ -10,22 +10,45 @@
parse('{}', env)
else
parse(env[:body], env)
end
end
-
+
def parse(body, env)
json = parse_json(body, env)
+ json.has_key?(:docs) ? format_collection( json, env ) : format_record( json, env )
+ end
+
+ def format_record(json, env)
errors = json.delete(:errors) || {}
metadata = json.delete(:metadata) || {}
# collect some response data
metadata.merge!({
status: env[:status],
headers: env[:response_headers],
})
# return object
object = {
:data => json,
+ :errors => errors,
+ :metadata => metadata
+ }
+ env[:status] = 200
+ object
+ end
+
+ def format_collection(json, env)
+ errors = json.delete(:errors) || {}
+ metadata = json.delete(:metadata) || {}
+ docs = json.delete(:docs)
+ # collect some response data
+ metadata.merge!(json).merge!({
+ status: env[:status],
+ headers: env[:response_headers],
+ })
+ # return object
+ object = {
+ :data => docs,
:errors => errors,
:metadata => metadata
}
env[:status] = 200
object
\ No newline at end of file