Sha256: 30d4e36352846c4050f0d83f38cecf32884c9d7d57a1e7a6a279123eb9aac944

Contents?: true

Size: 592 Bytes

Versions: 4

Compression:

Stored size: 592 Bytes

Contents

require 'faraday_middleware/response_middleware'

class Frenetic
  module Middleware
    class HalJson < FaradayMiddleware::ParseJson

      def process_response(env)
        super

        if (500...599).include? env[:status]
          raise ServerError, env[:body]['error']
        elsif (400...499).include? env[:status]
          raise ClientError, env[:body]['error']
        end
      rescue Faraday::Error::ParsingError => err
        raise ParsingError, err.message
      end

    end
  end
end

Faraday.register_middleware :response, hal_json:lambda { Frenetic::Middleware::HalJson }

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
frenetic-0.0.20.alpha.3 lib/frenetic/middleware/hal_json.rb
frenetic-0.0.20.alpha.2 lib/frenetic/middleware/hal_json.rb
frenetic-0.0.20.alpha.1 lib/frenetic/middleware/hal_json.rb
frenetic-0.0.20.alpha.0 lib/frenetic/middleware/hal_json.rb