Class: HttpUtilities::Http::Client

Inherits:
Object
  • Object
show all
Includes:
Logger
Defined in:
lib/http_utilities/http/client.rb

Instance Method Summary collapse

Methods included from Logger

#log

Instance Method Details

#get(url, arguments: {}, options: {}, raise_exceptions: false, retries: 3) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/http_utilities/http/client.rb', line 8

def get(url, arguments: {}, options: {}, raise_exceptions: false, retries: 3)
  response        =   nil
  
  begin
    request       =   build_request(options: options)
    response      =   request.interface.get(url, arguments)
    response      =   HttpUtilities::Http::Response.new(response: response, request: request, options: options)
    
  rescue Faraday::TimeoutError, Net::ReadTimeout, Timeout::Error, StandardError => e
    log(:error, "[HttpUtilities::Http::Client] - An error occurred while trying to fetch the response. Error Class: #{e.class.name}. Error Message: #{e.message}.")
    retries      -=   1
    retry if retries > 0
    raise e if raise_exceptions && retries == 0
  end

  return response
end

#post(url, data: nil, options: {}, raise_exceptions: false, retries: 3) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/http_utilities/http/client.rb', line 26

def post(url, data: nil, options: {}, raise_exceptions: false, retries: 3)
  response        =   nil
    
  begin
    request       =   build_request(options: options)
    response      =   request.interface.post(url, data)
    response      =   HttpUtilities::Http::Response.new(response: response, request: request, options: options)
    
  rescue Faraday::TimeoutError, Net::ReadTimeout, Timeout::Error, StandardError => e
    log(:error, "[HttpUtilities::Http::Client] - An error occurred while trying to fetch the response. Error Class: #{e.class.name}. Error Message: #{e.message}.")
    retries          -=   1
    retry if retries > 0
    raise e if raise_exceptions && retries == 0
  end

  return response
end