Class: Connectors::Base::CustomClient
- Inherits:
-
Object
- Object
- Connectors::Base::CustomClient
- Defined in:
- lib/connectors/base/custom_client.rb
Direct Known Subclasses
Constant Summary collapse
- MAX_RETRIES =
5
Instance Attribute Summary collapse
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
-
#ensure_fresh_auth ⇒ Object
readonly
Returns the value of attribute ensure_fresh_auth.
-
#middleware ⇒ Object
readonly
Returns the value of attribute middleware.
Instance Method Summary collapse
- #additional_middleware ⇒ Object
- #default_middleware ⇒ Object
- #http_client ⇒ Object
- #http_client! ⇒ Object
-
#initialize(base_url: nil, ensure_fresh_auth: nil) ⇒ CustomClient
constructor
A new instance of CustomClient.
- #middleware! ⇒ Object
- #retry_config ⇒ Object
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/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_url ⇒ Object (readonly)
Returns the value of attribute base_url.
18 19 20 |
# File 'lib/connectors/base/custom_client.rb', line 18 def base_url @base_url end |
#ensure_fresh_auth ⇒ Object (readonly)
Returns the value of attribute ensure_fresh_auth.
18 19 20 |
# File 'lib/connectors/base/custom_client.rb', line 18 def ensure_fresh_auth @ensure_fresh_auth end |
#middleware ⇒ Object (readonly)
Returns the value of attribute middleware.
18 19 20 |
# File 'lib/connectors/base/custom_client.rb', line 18 def middleware @middleware end |
Instance Method Details
#additional_middleware ⇒ Object
34 35 36 |
# File 'lib/connectors/base/custom_client.rb', line 34 def additional_middleware [] # define as needed in subclass end |
#default_middleware ⇒ Object
38 39 40 |
# File 'lib/connectors/base/custom_client.rb', line 38 def default_middleware [[Faraday::Request::Retry, retry_config]] end |
#http_client ⇒ Object
71 72 73 74 75 76 77 78 79 |
# File 'lib/connectors/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/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/base/custom_client.rb', line 28 def middleware! @middleware = Array.wrap(additional_middleware) @middleware += Array.wrap(default_middleware) @middleware.compact! end |
#retry_config ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/connectors/base/custom_client.rb', line 42 def retry_config { :retry_statuses => [429], :backoff_factor => 2, :max => MAX_RETRIES, :interval => 0.05 } end |