class ZendeskAPI::Middleware::Request::RaiseRateLimited

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

Constants

ERROR_CODES

Public Class Methods

new(app, options = {}) click to toggle source
Calls superclass method
# File lib/zendesk_api/middleware/request/raise_rate_limited.rb, line 13
def initialize(app, options = {})
  super(app)
  @logger = options[:logger]
end

Public Instance Methods

call(env) click to toggle source
# File lib/zendesk_api/middleware/request/raise_rate_limited.rb, line 18
def call(env)
  response = @app.call(env)

  if ERROR_CODES.include?(response.env[:status])
    @logger&.warn 'You have been rate limited. Raising error...'
    raise Error::RateLimited, env
  else
    response
  end
end