Class: Dinie::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/dinie/generated/client.rb

Constant Summary collapse

DEFAULT_TIMEOUT_SECONDS =
Internal::HttpClient::DEFAULT_TIMEOUT_SECONDS
DEFAULT_MAX_RETRIES =
Internal::HttpClient::DEFAULT_MAX_RETRIES

Instance Method Summary collapse

Constructor Details

#initialize(client_id: nil, client_secret: nil, code: nil, base_url: nil, timeout: DEFAULT_TIMEOUT_SECONDS, max_retries: DEFAULT_MAX_RETRIES, idempotency: true, log_level: :off, logger: nil, adapter: nil, token_manager: nil, connection: nil) ⇒ Client

Returns a new instance of Client.



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

def initialize(client_id: nil, client_secret: nil, code: nil, base_url: nil, timeout: DEFAULT_TIMEOUT_SECONDS,
               max_retries: DEFAULT_MAX_RETRIES, idempotency: true, log_level: :off, logger: nil,
               adapter: nil, token_manager: nil, connection: nil)
  @base_url = first_present(base_url, ENV.fetch("DINIE_BASE_URL", nil)) || Internal::HttpClient::DEFAULT_BASE_URL
  @options = {
    timeout: timeout, max_retries: max_retries, idempotency: idempotency,
    log_level: log_level, logger: logger, adapter: adapter
  }

  @connection = connection || build_connection(log_level: log_level, logger: logger, adapter: adapter)
  @token_manager = token_manager || build_token_manager(client_id, client_secret, code)
  @http = Internal::HttpClient.new(
    token_manager: @token_manager, base_url: @base_url, timeout: timeout,
    max_retries: max_retries, idempotency: idempotency, connection: @connection
  )
end

Instance Method Details

#banksObject



29
30
31
# File 'lib/dinie/generated/client.rb', line 29

def banks
  @banks ||= Resources::Banks.new(@http)
end

#biometricsObject



33
34
35
# File 'lib/dinie/generated/client.rb', line 33

def biometrics
  @biometrics ||= Resources::Biometrics.new(@http)
end

#credentialsObject



37
38
39
# File 'lib/dinie/generated/client.rb', line 37

def credentials
  @credentials ||= Resources::Credentials.new(@http)
end

#credit_offersObject



41
42
43
# File 'lib/dinie/generated/client.rb', line 41

def credit_offers
  @credit_offers ||= Resources::CreditOffers.new(@http)
end

#customersObject



45
46
47
# File 'lib/dinie/generated/client.rb', line 45

def customers
  @customers ||= Resources::Customers.new(@http)
end

#loansObject



49
50
51
# File 'lib/dinie/generated/client.rb', line 49

def loans
  @loans ||= Resources::Loans.new(@http)
end

#rate_limitObject



57
58
59
# File 'lib/dinie/generated/client.rb', line 57

def rate_limit
  @http.rate_limit
end

#webhook_endpointsObject



53
54
55
# File 'lib/dinie/generated/client.rb', line 53

def webhook_endpoints
  @webhook_endpoints ||= Resources::WebhookEndpoints.new(@http)
end

#with_options(**overrides) ⇒ Object



61
62
63
64
65
66
# File 'lib/dinie/generated/client.rb', line 61

def with_options(**overrides)
  self.class.new(
    base_url: @base_url, token_manager: @token_manager, connection: @connection,
    **@options.merge(overrides)
  )
end