class Yext::Api::Utils::Middleware::ApiRateLimits
Faraday Middleware
for extracting API limits from call responses.
Public Instance Methods
call(env)
click to toggle source
# File lib/yext/api/utils/middleware/api_rate_limits.rb, line 9 def call(env) @app.call(env).on_complete do |environment| save_rates(environment, Yext::Api::Utils::ApiFinder.new(env[:url], env[:method]).find_api) env.response end end
Private Instance Methods
save_rates(environment, api_module)
click to toggle source
# File lib/yext/api/utils/middleware/api_rate_limits.rb, line 19 def save_rates(environment, api_module) return if api_module.blank? response_headers = environment[:response_headers] return unless response_headers.key?("rate-limit-remaining") api_module.send(:update_rates, remaining: response_headers["rate-limit-remaining"].to_i, limit: response_headers["rate-limit-limit"].to_i, reset_at: Time.at(response_headers["rate-limit-reset"].to_i)) end