Class: ConnectorsSdk::Base::CustomClient

Inherits:
Object
  • Object
show all
Defined in:
lib/connectors_sdk/base/custom_client.rb

Constant Summary collapse

MAX_RETRIES =
5

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_url: nil, ensure_fresh_auth: nil) ⇒ CustomClient

Returns a new instance of CustomClient.



22
23
24
25
26
# File 'lib/connectors_sdk/base/custom_client.rb', line 22

def initialize(base_url: nil, ensure_fresh_auth: nil)
  @base_url = base_url
  @ensure_fresh_auth = ensure_fresh_auth
  middleware!
end

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



18
19
20
# File 'lib/connectors_sdk/base/custom_client.rb', line 18

def base_url
  @base_url
end

#ensure_fresh_authObject (readonly)

Returns the value of attribute ensure_fresh_auth.



18
19
20
# File 'lib/connectors_sdk/base/custom_client.rb', line 18

def ensure_fresh_auth
  @ensure_fresh_auth
end

#middlewareObject (readonly)

Returns the value of attribute middleware.



18
19
20
# File 'lib/connectors_sdk/base/custom_client.rb', line 18

def middleware
  @middleware
end

Instance Method Details

#additional_middlewareObject



34
35
36
# File 'lib/connectors_sdk/base/custom_client.rb', line 34

def additional_middleware
  [] # define as needed in subclass
end

#default_middlewareObject



38
39
40
# File 'lib/connectors_sdk/base/custom_client.rb', line 38

def default_middleware
  [[Faraday::Request::Retry, retry_config]]
end

#http_clientObject



71
72
73
74
75
76
77
78
79
# File 'lib/connectors_sdk/base/custom_client.rb', line 71

def http_client
  @http_client ||= Faraday.new(base_url) do |faraday|
    middleware.each do |middleware_config|
      faraday.use(*middleware_config)
    end

    faraday.adapter :httpclient
  end
end

#http_client!Object



66
67
68
69
# File 'lib/connectors_sdk/base/custom_client.rb', line 66

def http_client!
  @http_client = nil
  http_client
end

#middleware!Object



28
29
30
31
32
# File 'lib/connectors_sdk/base/custom_client.rb', line 28

def middleware!
  @middleware = Array.wrap(additional_middleware)
  @middleware += Array.wrap(default_middleware)
  @middleware.compact!
end

#retry_configObject



42
43
44
45
46
47
48
49
# File 'lib/connectors_sdk/base/custom_client.rb', line 42

def retry_config
  {
    :retry_statuses => [429],
    :backoff_factor => 2,
    :max => MAX_RETRIES,
    :interval => 0.05
  }
end