Sha256: 7684f4c6ffb64976763a90b8851cd7b5a5051cc9a6cd347d9714efcd371aa2ba

Contents?: true

Size: 580 Bytes

Versions: 1

Compression:

Stored size: 580 Bytes

Contents

require 'faraday'
require 'api/errors'

module Api
  # Faraday response middleware
  module Response

    # This class raises an Api-flavored exception based
    # HTTP status codes returned by the API
    class RaiseError < Faraday::Response::Middleware

      class << self
        def try(response)
          @middleware ||= RaiseError.new
          @middleware.send(:on_complete, response)
        end
      end

      private

      def on_complete(response)
        if error = Api::Error.from_response(response)
          raise error
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
apii-0.0.4 lib/api/response/raise_error.rb