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