Sha256: c01a35fec5de530fe666da7b96fae65a311c77cc0f9da97fc0b9100e3c147606
Contents?: true
Size: 876 Bytes
Versions: 3
Compression:
Stored size: 876 Bytes
Contents
module Her module Middleware # This middleware treat the received first-level JSON structure as the resource data. class FirstLevelParseJSON < Faraday::Response::Middleware # Parse the response body # # @param [String] body The response body # @return [Mixed] the parsed response def parse(body) json = MultiJson.load(body, :symbolize_keys => true) errors = json.delete(:errors) || [] metadata = json.delete(:metadata) || [] { :data => json, :errors => errors, :metadata => metadata } end # This method is triggered when the response has been received. It modifies # the value of `env[:body]`. # # @param [Hash] env The response environment def on_complete(env) env[:body] = parse(env[:body]) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
her-0.3.6 | lib/her/middleware/first_level_parse_json.rb |
her-0.3.5 | lib/her/middleware/first_level_parse_json.rb |
her-0.3.4 | lib/her/middleware/first_level_parse_json.rb |