Class: HttpUtilities::Http::Client

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

Constant Summary collapse

EXCEPTIONS =
[
  Faraday::Error
]

Instance Method Summary collapse

Methods included from Logger

#log

Instance Method Details

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



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/http_utilities/http/client.rb', line 12

def get(url, arguments: {}, options: {}, client_options: {}, raise_exceptions: false, retries: 3)
  response        =   nil
  
  begin
    request       =   build_request(options: options, client_options: client_options)
    response      =   request.interface.get(url, arguments)
    response      =   HttpUtilities::Http::Response.new(response: response, request: request, options: options)
    
  rescue *EXCEPTIONS => 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

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



34
35
36
# File 'lib/http_utilities/http/client.rb', line 34

def patch(url, data: nil, options: {}, client_options: {}, raise_exceptions: false, retries: 3)
  update(url, action: :patch, data: data, options: options, client_options: client_options, raise_exceptions: raise_exceptions, retries: retries)
end

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



30
31
32
# File 'lib/http_utilities/http/client.rb', line 30

def post(url, data: nil, options: {}, client_options: {}, raise_exceptions: false, retries: 3)
  update(url, action: :post, data: data, options: options, client_options: client_options, raise_exceptions: raise_exceptions, retries: retries)
end

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



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/http_utilities/http/client.rb', line 38

def update(url, action: :post, data: nil, options: {}, client_options: {}, raise_exceptions: false, retries: 3)
  response        =   nil
    
  begin
    request       =   build_request(options: options, client_options: client_options)
    response      =   request.interface.send(action, url, data)
    response      =   HttpUtilities::Http::Response.new(response: response, request: request, options: options)
    
  rescue *EXCEPTIONS => 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