Sha256: adfbfe7ad8ab715b6dfb65e6a20ab15388a99e42461d2da8127a000d505c5212
Contents?: true
Size: 699 Bytes
Versions: 4
Compression:
Stored size: 699 Bytes
Contents
# frozen_string_literal: true module ErpIntegration module Middleware class ApiKeysRotation < Faraday::Middleware HTTP_ROTATE_CODES = [404, 429].freeze attr_reader :options def initialize(app, options = {}) super(app) @options = options end def call(env) on_request(env) @app.call(env).on_complete { |response| on_complete(response) } end def on_request(env) env[:request_headers]['X-API-KEY'] = options[:api_keys_pool].current_key end def on_complete(env) return unless HTTP_ROTATE_CODES.include?(env.status) options[:api_keys_pool].rotate_key! end end end end
Version data entries
4 entries across 4 versions & 1 rubygems