Class: Hanko::Middleware::RaiseError

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

Overview

Faraday middleware that raises typed Hanko errors for HTTP 4xx/5xx responses.

Maps specific HTTP status codes to error classes:

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ void

This method returns an undefined value.

Called by Faraday after each request completes.

Parameters:

  • env (Faraday::Env)

    the request/response environment

Raises:



24
25
26
27
28
29
30
31
# File 'lib/hanko/middleware/raise_error.rb', line 24

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

  body = parse_body(env.body)
  message = body['message'] || body['error'] || "HTTP #{env.status}"

  raise error_for(env.status, message, body, env.response_headers)
end