Class: FaradayMiddleware::RaiseHttpException
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- FaradayMiddleware::RaiseHttpException
- Defined in:
- lib/faraday/raise_http_exception.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ RaiseHttpException
constructor
A new instance of RaiseHttpException.
Constructor Details
#initialize(app) ⇒ RaiseHttpException
Returns a new instance of RaiseHttpException.
26 27 28 29 |
# File 'lib/faraday/raise_http_exception.rb', line 26 def initialize(app) super(app) @parser = nil end |
Instance Method Details
#call(env) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/faraday/raise_http_exception.rb', line 8 def call(env) @app.call(env).on_complete do |response| case response[:status].to_i when 400, 401, 404, 500, 502, 503, 504 raise ShipEngine::Exceptions::ShipEngineError.new( message: error_body(response[:body]), source: error_source(response[:body]), type: error_type(response[:body]), code: error_code(response[:body]), request_id: response[:body]['request_id'], url: response[:url].to_s ) when 429 raise ShipEngine::Exceptions::RateLimitError.new(retries: env.request_headers['Retries'].to_i, source: error_source(response[:body]), request_id: response[:body]['request_id']) end end end |