Sha256: da159f5b2688103d3b7ba8a2454ba77e40d7d5df6777c462c6bdf817835f0831
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true module Yext module Api module Utils # Faraday Middleware for extracting API limits from call responses. class ApiRateLimits < Faraday::Response::Middleware include Yext::Api::Concerns::ApiFinder def call(env) @app.call(env).on_complete do |environment| save_rates(environment, find_api(env[:url], env[:method].to_s)) env.response end end private def save_rates(environment, api_module) return if api_module.blank? api_module.last_status = environment[:status] response_headers = environment[:response_headers] return unless response_headers.key?("rate-limit-remaining") api_module.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 end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
yext-api-0.1.1 | lib/yext/api/utils/api_rate_limits.rb |