Sha256: 4862070b3e883f7ba70fd4f249ca30e35065954775382f33545f5b2a44995118

Contents?: true

Size: 709 Bytes

Versions: 4

Compression:

Stored size: 709 Bytes

Contents

require 'faraday_middleware/response_middleware'

class Frenetic
  module Middleware
    class HalJson < FaradayMiddleware::ParseJson
      def process_response(env)
        super

        case env[:status]
        when 500...599 then fail ServerError.new(env)
        when 400...499 then fail ClientError.new(env)
        end
      rescue Faraday::Error::ParsingError => err
        case env[:status]
        when 500...599 then raise ServerParsingError.new(env)
        when 400...499 then raise ClientParsingError.new(env)
        else raise UnknownParsingError.new(env, err)
        end
      end
    end
  end
end

Faraday::Response.register_middleware \
  hal_json: -> { Frenetic::Middleware::HalJson }

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
frenetic-3.0.1 lib/frenetic/middleware/hal_json.rb
frenetic-3.0.0 lib/frenetic/middleware/hal_json.rb
frenetic-2.0.0 lib/frenetic/middleware/hal_json.rb
frenetic-1.0.0 lib/frenetic/middleware/hal_json.rb