Class: Virtuous::FaradayMiddleware::VirtuousErrorHandler

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/virtuous/error.rb

Constant Summary collapse

ERROR_STATUSES =
(400..600).freeze

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object

Throws an exception for responses with an HTTP error code.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/virtuous/error.rb', line 21

def on_complete(env)
  message = error_message(env)

  case env[:status]
  when 400
    raise Virtuous::BadRequest, message
  when 401
    raise Virtuous::Unauthorized, message
  when 403
    raise Virtuous::Forbidden, message
  when 404
    raise Virtuous::NotFound, message
  when 500
    raise Virtuous::InternalServerError, message
  when 502
    raise Virtuous::BadGateway, message
  when 503
    raise Virtuous::ServiceUnavailable, message
  when 504
    raise Virtuous::GatewayTimeout, message
  when 520
    raise Virtuous::CloudflareError, message
  when ERROR_STATUSES
    raise Virtuous::Error, message
  end
end