Sha256: e570463f565b3ecfd28b4bbdeffefcb5bf4923a731c8de70f23475142cb36033

Contents?: true

Size: 722 Bytes

Versions: 10

Compression:

Stored size: 722 Bytes

Contents

module Vhx
  module Middleware
    class ErrorResponse < Faraday::Response::Middleware
      def on_complete(env)
        error_class = case env[:status]
        when 200, 201, 204
        when 304
        when 400
          BadRequestError
        when 401
          if env[:body].fetch('message', '').match(/token/)
            InvalidTokenError
          else
            UnauthorizedError
          end
        when 402
          PaymentRequiredError
        when 404
          NotFoundError
        when 406
          NotAcceptableError
        else
          ServerError
        end

        if error_class
          raise error_class.new(env[:body], env[:status], env[:url])
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
vhx-ruby-0.0.12 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.10 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.9 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.8 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.7 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.6 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.5 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.4 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.3 lib/vhx/middleware/error_response.rb
vhx-ruby-0.0.2 lib/vhx/middleware/error_response.rb