Sha256: 92d3863aaaa70d03374d3669847c5208c960911b4076127687901141a29bf771

Contents?: true

Size: 834 Bytes

Versions: 11

Compression:

Stored size: 834 Bytes

Contents

module Her
  module Middleware
    # This middleware expects the resource/collection data to be contained in the `data`
    # key of the JSON object
    class SecondLevelParseJSON < 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)
        {
          :data => json[:data],
          :errors => json[:errors],
          :metadata => json[: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

11 entries across 11 versions & 2 rubygems

Version Path
her-0.5.2 lib/her/middleware/second_level_parse_json.rb
her-0.5.1 lib/her/middleware/second_level_parse_json.rb
her-0.5 lib/her/middleware/second_level_parse_json.rb
extended_her-0.5 lib/her/middleware/second_level_parse_json.rb
her-0.4.1 lib/her/middleware/second_level_parse_json.rb
her-0.4 lib/her/middleware/second_level_parse_json.rb
her-0.3.8 lib/her/middleware/second_level_parse_json.rb
her-0.3.7 lib/her/middleware/second_level_parse_json.rb
her-0.3.6 lib/her/middleware/second_level_parse_json.rb
her-0.3.5 lib/her/middleware/second_level_parse_json.rb
her-0.3.4 lib/her/middleware/second_level_parse_json.rb