Sha256: 37ec4bf703e0946620d1ac6eed430f5df3494e1fee2944b365f7de83b2b1a319

Contents?: true

Size: 842 Bytes

Versions: 3

Compression:

Stored size: 842 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
        if (500...599).include? env[:status]
          raise ServerError, "#{env[:status]} Error encountered"
        elsif (400...499).include? env[:status]
          raise ClientError, "#{env[:status]} Error encountered"
        else
          raise ParsingError, err.message
        end
      end

    end
  end
end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
frenetic-0.0.20.alpha.6 lib/frenetic/middleware/hal_json.rb
frenetic-0.0.20.alpha.5 lib/frenetic/middleware/hal_json.rb
frenetic-0.0.20.alpha.4 lib/frenetic/middleware/hal_json.rb