lib/contentful/management/client.rb in contentful-management-3.8.0 vs lib/contentful/management/client.rb in contentful-management-3.9.0

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + require 'http' require 'json' require 'logger' require 'rbconfig' @@ -66,11 +68,11 @@ integration_name: nil, integration_version: nil }.freeze # Rate Limit Reset Header Key - RATE_LIMIT_RESET_HEADER_KEY = 'x-contentful-ratelimit-reset'.freeze + RATE_LIMIT_RESET_HEADER_KEY = 'x-contentful-ratelimit-reset' # @param [String] access_token # @param [Hash] configuration # @option configuration [String] :api_url # @option configuration [String] :api_version @@ -393,12 +395,12 @@ logger.info(request: { url: url, query: request.query, header: request_headers(request) }) if logger raw_response = yield(url) logger.debug(response: raw_response) if logger result = Response.new(raw_response, request) fail result.object if result.object.is_a?(Error) && configuration[:raise_errors] - rescue Contentful::Management::RateLimitExceeded => rate_limit_error - reset_time = rate_limit_error.response.raw[RATE_LIMIT_RESET_HEADER_KEY].to_i + rescue Contentful::Management::RateLimitExceeded => e + reset_time = e.response.raw[RATE_LIMIT_RESET_HEADER_KEY].to_i if should_retry(retries_left, reset_time, configuration[:max_rate_limit_wait]) retries_left -= 1 logger.info(retry_message(retries_left, reset_time)) if logger sleep(reset_time * Random.new.rand(1.0..1.2)) retry @@ -426,11 +428,11 @@ retry_message end # @private def should_retry(retries_left, reset_time, max_wait) - retries_left > 0 && max_wait > reset_time + retries_left.positive? && max_wait > reset_time end # @private def clear_headers self.content_type_id = nil @@ -500,10 +502,11 @@ # @param [Hash] proxy # # @return [HTTP::Response] def http_send(type, url, params, headers, proxy) return proxy_send(type, url, params, headers, proxy) unless proxy[:host].nil? + HTTP[headers].public_send(type, url, params) end # @private def base_url @@ -590,9 +593,10 @@ } result = [] header.each do |key, values| next unless values[:name] + result << format_user_agent_header(key, values) end result.join(' ') end