Sha256: c99e2de43fb62c4f4375ebba508a18138589cd7b41300697ac5c7e0089427d8f

Contents?: true

Size: 860 Bytes

Versions: 19

Compression:

Stored size: 860 Bytes

Contents

require 'faraday_middleware'
require 'routemaster/errors'

module Routemaster
  module Middleware
    class ErrorHandling < Faraday::Response::Middleware
      ERRORS_MAPPING = {
        (400..400) => Errors::InvalidResource,
        (401..401) => Errors::UnauthorizedResourceAccess,
        (403..403) => Errors::UnauthorizedResourceAccess,
        (404..404) => Errors::ResourceNotFound,
        (409..409) => Errors::ConflictResource,
        (412..412) => Errors::IncompatibleVersion,
        (413..413) => Errors::InvalidResource,
        (429..429) => Errors::ResourceThrottling,
        (407..500) => Errors::FatalResource
      }.freeze

      def on_complete(env)
        ERRORS_MAPPING.each do |range, error_class|
          if range.include?(env[:status])
            raise error_class.new(env)
          end
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
routemaster-drain-3.3.0 lib/routemaster/middleware/error_handling.rb
routemaster-drain-3.2.0 lib/routemaster/middleware/error_handling.rb
routemaster-drain-3.1.0 lib/routemaster/middleware/error_handling.rb
routemaster-drain-3.0.3 lib/routemaster/middleware/error_handling.rb
routemaster-drain-3.0.2 lib/routemaster/middleware/error_handling.rb
routemaster-drain-3.0.1 lib/routemaster/middleware/error_handling.rb
routemaster-drain-3.0.0 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.5.4 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.5.3 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.5.2 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.5.1 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.5.0 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.4.4 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.4.3 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.4.2 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.4.1 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.4.0 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.3.0 lib/routemaster/middleware/error_handling.rb
routemaster-drain-2.2.2 lib/routemaster/middleware/error_handling.rb