lib/quandl/client/middleware/parse_json.rb in quandl_client-2.7.11 vs lib/quandl/client/middleware/parse_json.rb in quandl_client-2.7.12
- old
+ new
@@ -1,86 +1,88 @@
-require 'json'
-
-module Quandl
-module Client
-module Middleware
-
-class ParseJSON < Faraday::Response::Middleware
-
- def on_complete(env)
- env[:body] = case env[:status]
- when 204
- 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],
- })
- # each doc metadata references metadata
- docs.each{|d| d[:metadata] = metadata }
- # return object
- object = {
- :data => docs,
- :errors => errors,
- :metadata => metadata
- }
- env[:status] = 200
- object
- end
-
- def parse_json(body = nil, env)
- body ||= '{}'
- json = begin
- JSON.parse(body).symbolize_keys!
- rescue JSON::ParserError
- nil
- end
- # invalid json body?
- if json.blank?
- # fallback to error message
- json = {
- id: 1,
- errors: {
- parse_errors: [ "Quandl::Client::ParseJSON error. status: #{env[:status]}, body: #{body.inspect}" ]
- }
- }
- end
- json
- end
-
-end
-
-end
-end
+require 'json'
+
+module Quandl
+module Client
+module Middleware
+
+class ParseJSON < Faraday::Response::Middleware
+
+ def on_complete(env)
+ env[:body] = case env[:status]
+ when 204
+ 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],
+ method: env[:method],
+ })
+ # 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],
+ method: env[:method],
+ })
+ # each doc metadata references metadata
+ docs.each{|d| d[:metadata] = metadata }
+ # return object
+ object = {
+ :data => docs,
+ :errors => errors,
+ :metadata => metadata
+ }
+ env[:status] = 200
+ object
+ end
+
+ def parse_json(body = nil, env)
+ body ||= '{}'
+ json = begin
+ JSON.parse(body).symbolize_keys!
+ rescue JSON::ParserError
+ nil
+ end
+ # invalid json body?
+ if json.blank?
+ # fallback to error message
+ json = {
+ id: 1,
+ errors: {
+ parse_errors: [ "Quandl::Client::ParseJSON error. status: #{env[:status]}, body: #{body.inspect}" ]
+ }
+ }
+ end
+ json
+ end
+
+end
+
+end
+end
end
\ No newline at end of file