Class: FaradayMiddleware::Request::Retry

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/faraday_middleware-request-retry/retry.rb

Overview

Faraday middleware to handle HTTP Status 429 (rate limiting) / 503 (maintenance)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, opts = {}) ⇒ Retry

Returns a new instance of Retry.



9
10
11
12
# File 'lib/faraday_middleware-request-retry/retry.rb', line 9

def initialize(app, opts = {})
  super app
  @retry_util = FaradayMiddleware::Request::RetryUtil.new opts
end

Instance Attribute Details

#retry_utilObject (readonly)

Returns the value of attribute retry_util.



7
8
9
# File 'lib/faraday_middleware-request-retry/retry.rb', line 7

def retry_util
  @retry_util
end

Instance Method Details

#call(env) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/faraday_middleware-request-retry/retry.rb', line 14

def call(env)
  original_env = env.dup
  response = @app.call env

  retry_status = @retry_util.retry_status response.env[:status], response.env[:response_headers][:retry_after]

  if retry_status
    @app.call original_env
  else
    response
  end
end