Class: Showroom::Http::Middleware::RaiseError
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- Showroom::Http::Middleware::RaiseError
- Defined in:
- lib/showroom/http/middleware/raise_error.rb
Overview
Faraday middleware that maps HTTP error statuses and parsing failures to Showroom error classes.
Constant Summary collapse
- STATUS_MAP =
Maps specific HTTP status codes to Showroom error classes.
{ 400 => Showroom::BadRequest, 404 => Showroom::NotFound, 422 => Showroom::UnprocessableEntity, 429 => Showroom::TooManyRequests }.freeze
Instance Method Summary collapse
-
#call(env) ⇒ Object
Executes the middleware, rescuing network-level Faraday errors.
Instance Method Details
#call(env) ⇒ Object
Executes the middleware, rescuing network-level Faraday errors.
29 30 31 32 33 34 35 36 |
# File 'lib/showroom/http/middleware/raise_error.rb', line 29 def call(env) @app.call(env).on_complete { |response_env| on_complete(response_env) } rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e raise ConnectionError, e. rescue Faraday::ParsingError raise InvalidResponse, 'Response was not JSON — store may be password-protected or blocking requests' end |