class OnebusawaySDK::Internal::Transport::BaseClient

def send_request(request, redirect_count:, retry_count:, send_retry_header:)

Returns:
  • (Array(Integer, Net::HTTPResponse, Enumerable)) -

Raises:
  • (OnebusawaySDK::Errors::APIError) -

Parameters:
  • send_retry_header (Boolean) --
  • retry_count (Integer) --
  • redirect_count (Integer) --
  • request (Hash{Symbol=>Object}) -- .

Options Hash: (**request)
  • :timeout (Float) --
  • :max_retries (Integer) --
  • :body (Object) --
  • :headers (Hash{String=>String}) --
  • :url (URI::Generic) --
  • :method (Symbol) --

Other tags:
    Api: - private
def send_request(request, redirect_count:, retry_count:, send_retry_header:)
eaders, max_retries, timeout = request.fetch_values(:url, :headers, :max_retries, :timeout)
= {
quest.except(:timeout),
line: OnebusawaySDK::Internal::Util.monotonic_secs + timeout
d_retry_header
ers["x-stainless-retry-count"] = retry_count.to_s
us, response, stream = @requester.execute(input)
 OnebusawaySDK::Errors::APIConnectionError => e
us = e
tatus
99
tus, response, stream]
..399 if redirect_count >= self.class::MAX_REDIRECTS
.class.reap_connection!(status, stream: stream)
age = "Failed to complete the request within #{self.class::MAX_REDIRECTS} redirects."
e OnebusawaySDK::Errors::APIConnectionError.new(
l: url,
sponse: response,
ssage: message
..399
.class.reap_connection!(status, stream: stream)
est = self.class.follow_redirect(request, status: status, response_headers: response)
_request(
quest,
direct_count: redirect_count + 1,
try_count: retry_count,
nd_retry_header: send_retry_header
busawaySDK::Errors::APIConnectionError if retry_count >= max_retries
e status
0..) if retry_count >= max_retries || !self.class.should_retry?(status, headers: response)
ded = Kernel.then do
ebusawaySDK::Internal::Util.decode_content(response, stream: stream, suppress_error: true)
re
lf.class.reap_connection!(status, stream: stream)
e OnebusawaySDK::Errors::APIStatusError.for(
l: url,
atus: status,
dy: decoded,
quest: nil,
sponse: response
0..) | OnebusawaySDK::Errors::APIConnectionError
.class.reap_connection!(status, stream: stream)
y = retry_delay(response || {}, retry_count: retry_count)
p(delay)
_request(
quest,
direct_count: redirect_count,
try_count: retry_count + 1,
nd_retry_header: send_retry_header