Class: Cpro::Middleware::RaiseError

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/cpro/middleware/raise_error.rb

Constant Summary collapse

ERRORS =
{
  400 => RequestError,
  401 => AuthenticationError,
  403 => AuthorizationError,
  404 => NotFoundError,
  406 => RequestError,
  415 => RequestError,
  422 => RequestError,
  429 => RateLimitError
}.freeze
CORRELATION_HEADER =
"x-correlationid"

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object

Raises:

  • (error_class(env.status))


19
20
21
22
23
24
25
26
27
28
# File 'lib/cpro/middleware/raise_error.rb', line 19

def on_complete(env)
  return if env.status < 400

  raise error_class(env.status).new(
    message_for(env),
    status: env.status,
    body: env.body,
    correlation_id: env.response_headers && env.response_headers[CORRELATION_HEADER]
  )
end