Sha256: f92ff274052207d2f42ddac79ca9d4087e64f579c678ddc3535ccb2ca6ecd732

Contents?: true

Size: 714 Bytes

Versions: 1

Compression:

Stored size: 714 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 raise ServerError.new(env)
        when 400...499 then raise 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:lambda { Frenetic::Middleware::HalJson }

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
frenetic-1.0.0.alpha.1 lib/frenetic/middleware/hal_json.rb