Sha256: 017826d8263211d289f0e3b05c51804717de5505ad0fe00b0c921e9aa6ace325

Contents?: true

Size: 953 Bytes

Versions: 62

Compression:

Stored size: 953 Bytes

Contents

module Her
  module Middleware
    # This middleware treat the received first-level JSON structure as the resource data.
    class FirstLevelParseJSON < ParseJSON
      # Parse the response body
      #
      # @param [String] body The response body
      # @return [Mixed] the parsed response
      # @private
      def parse(body)
        json = parse_json(body)
        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
      # @private
      def on_complete(env)
        env[:body] = case env[:status]
        when 204
          parse('{}')
        else
          parse(env[:body])
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 5 rubygems

Version Path
test_track_rails_client-4.0.0.alpha12 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha11 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
her-0.10.4 lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha10 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
her-0.10.3 lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha9 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha8 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha7 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha6 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha5 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha4 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha3 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
her-0.10.2 lib/her/middleware/first_level_parse_json.rb
her-1.0.1 lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha2 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-4.0.0.alpha1 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
her-1.0.0 lib/her/middleware/first_level_parse_json.rb
her-0.10.1 lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-3.0.1 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb
test_track_rails_client-3.0.0 vendor/gems/her/lib/her/middleware/first_level_parse_json.rb