lib/yext/api/concerns/faraday_connection.rb in yext-api-0.1.1 vs lib/yext/api/concerns/faraday_connection.rb in yext-api-0.1.3

- old
+ new

@@ -26,18 +26,32 @@ def live_api self.connection = Yext::Api::Concerns::FaradayConnection.faraday_connection("https://live.yext.com/v2") end end - def self.faraday_connection(url) - Faraday.new(url: url) do |c| - c.request :json + class << self + def faraday_connection(url) + Faraday.new(url: url) do |c| + c.request :json + c.request :retry, + max: 2, + interval: 0.05, + interval_randomness: 0.5, + backoff_factor: 2 - c.use Yext::Api::Utils::ResponseParser - c.use Yext::Api::Utils::DefaultParameters - c.use Yext::Api::Utils::ApiRateLimits + add_middleware(c) - c.adapter Faraday.default_adapter + c.adapter Faraday.default_adapter + end + end + + private + + def add_middleware(c) + c.use Yext::Api::Utils::Middleware::ResponseParser + c.use Yext::Api::Utils::Middleware::DefaultParameters + c.use Yext::Api::Utils::Middleware::ApiRateLimits + c.use Yext::Api::Utils::Middleware::UriCleanup end end end end end