Class: Plaid::Client

Inherits:
Object
  • Object
show all
Includes:
CoreLibrary
Defined in:
lib/plaid/client.rb

Overview

plaid client class.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection: nil, adapter: :net_http_persistent, timeout: 60, max_retries: 0, retry_interval: 1, backoff_factor: 2, retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524], retry_methods: %i[get put],, http_callback: nil, proxy_settings: nil, logging_configuration: nil, environment: Environment::PRODUCTION, plaid_client_id_credentials: nil, plaid_secret_credentials: nil, plaid_version_credentials: nil, config: nil) ⇒ Client

Returns a new instance of Client.



148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/plaid/client.rb', line 148

def initialize(
  connection: nil, adapter: :net_http_persistent, timeout: 60,
  max_retries: 0, retry_interval: 1, backoff_factor: 2,
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
  retry_methods: %i[get put], http_callback: nil, proxy_settings: nil,
  logging_configuration: nil, environment: Environment::PRODUCTION,
  plaid_client_id_credentials: nil, plaid_secret_credentials: nil,
  plaid_version_credentials: nil, config: nil
)
  @config = if config.nil?
              Configuration.new(
                connection: connection, adapter: adapter, timeout: timeout,
                max_retries: max_retries, retry_interval: retry_interval,
                backoff_factor: backoff_factor,
                retry_statuses: retry_statuses,
                retry_methods: retry_methods, http_callback: http_callback,
                proxy_settings: proxy_settings,
                logging_configuration: logging_configuration,
                environment: environment,
                plaid_client_id_credentials: plaid_client_id_credentials,
                plaid_secret_credentials: plaid_secret_credentials,
                plaid_version_credentials: plaid_version_credentials
              )
            else
              config
            end
  user_agent_params = BaseApi.user_agent_parameters

  @global_configuration = GlobalConfiguration.new(client_configuration: @config)
                                             .base_uri_executor(@config.method(:get_base_uri))
                                             .global_errors(BaseApi::GLOBAL_ERRORS)
                                             .user_agent(BaseApi.user_agent,
                                                         agent_parameters: user_agent_params)

  initialize_auth_managers(@global_configuration)
  @global_configuration = @global_configuration.auth_managers(@auth_managers)
end

Instance Attribute Details

#auth_managersObject (readonly)

Returns the value of attribute auth_managers.



10
11
12
# File 'lib/plaid/client.rb', line 10

def auth_managers
  @auth_managers
end

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/plaid/client.rb', line 10

def config
  @config
end

Class Method Details

.from_env(**overrides) ⇒ Object

Creates a client directly from environment variables.



202
203
204
205
206
# File 'lib/plaid/client.rb', line 202

def self.from_env(**overrides)
  default_config = Configuration.build_default_config_from_env
  new_config = default_config.clone_with(**overrides)
  new(config: new_config)
end

Instance Method Details

#accountsAccountsApi

Access to accounts controller.

Returns:



66
67
68
# File 'lib/plaid/client.rb', line 66

def accounts
  @accounts ||= AccountsApi.new @global_configuration
end

#applicationApplicationApi

Access to application controller.

Returns:



60
61
62
# File 'lib/plaid/client.rb', line 60

def application
  @application ||= ApplicationApi.new @global_configuration
end

#asset_reportAssetReportApi

Access to asset_report controller.

Returns:



24
25
26
# File 'lib/plaid/client.rb', line 24

def asset_report
  @asset_report ||= AssetReportApi.new @global_configuration
end

#authAuthApi

Access to auth controller.

Returns:

  • (AuthApi)

    Returns the controller instance.



84
85
86
# File 'lib/plaid/client.rb', line 84

def auth
  @auth ||= AuthApi.new @global_configuration
end

#bank_transferBankTransferApi

Access to bank_transfer controller.

Returns:



126
127
128
# File 'lib/plaid/client.rb', line 126

def bank_transfer
  @bank_transfer ||= BankTransferApi.new @global_configuration
end

#categoriesCategoriesApi

Access to categories controller.

Returns:



96
97
98
# File 'lib/plaid/client.rb', line 96

def categories
  @categories ||= CategoriesApi.new @global_configuration
end

#deposit_switchDepositSwitchApi

Access to deposit_switch controller.

Returns:



108
109
110
# File 'lib/plaid/client.rb', line 108

def deposit_switch
  @deposit_switch ||= DepositSwitchApi.new @global_configuration
end

#employersEmployersApi

Access to employers controller.

Returns:



132
133
134
# File 'lib/plaid/client.rb', line 132

def employers
  @employers ||= EmployersApi.new @global_configuration
end

#identityIdentityApi

Access to identity controller.

Returns:



72
73
74
# File 'lib/plaid/client.rb', line 72

def identity
  @identity ||= IdentityApi.new @global_configuration
end

#incomeIncomeApi

Access to income controller.

Returns:

  • (IncomeApi)

    Returns the controller instance.



138
139
140
# File 'lib/plaid/client.rb', line 138

def income
  @income ||= IncomeApi.new @global_configuration
end

#initialize_auth_managers(global_config) ⇒ Object

Initializes the auth managers hash used for authenticating API calls.

Parameters:

  • global_config (GlobalConfiguration)

    The global configuration of the SDK)



188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/plaid/client.rb', line 188

def initialize_auth_managers(global_config)
  @auth_managers = {}
  http_client_config = global_config.client_configuration
  %w[PLAID-CLIENT-ID PLAID-SECRET Plaid-Version].each { |auth| @auth_managers[auth] = nil }
  @auth_managers['PLAID-CLIENT-ID'] = PlaidClientId.new(
    http_client_config.plaid_client_id_credentials
  )
  @auth_managers['PLAID-SECRET'] = PlaidSecret.new(http_client_config.plaid_secret_credentials)
  @auth_managers['Plaid-Version'] = PlaidVersion.new(
    http_client_config.plaid_version_credentials
  )
end

#institutionsInstitutionsApi

Access to institutions controller.

Returns:



54
55
56
# File 'lib/plaid/client.rb', line 54

def institutions
  @institutions ||= InstitutionsApi.new @global_configuration
end

#investmentsInvestmentsApi

Access to investments controller.

Returns:



48
49
50
# File 'lib/plaid/client.rb', line 48

def investments
  @investments ||= InvestmentsApi.new @global_configuration
end

#itemItemApi

Access to item controller.

Returns:

  • (ItemApi)

    Returns the controller instance.



18
19
20
# File 'lib/plaid/client.rb', line 18

def item
  @item ||= ItemApi.new @global_configuration
end

#liabilitiesLiabilitiesApi

Access to liabilities controller.

Returns:



78
79
80
# File 'lib/plaid/client.rb', line 78

def liabilities
  @liabilities ||= LiabilitiesApi.new @global_configuration
end

Access to link controller.

Returns:

  • (LinkApi)

    Returns the controller instance.



114
115
116
# File 'lib/plaid/client.rb', line 114

def link
  @link ||= LinkApi.new @global_configuration
end

#payment_initiationPaymentInitiationApi

Access to payment_initiation controller.

Returns:



36
37
38
# File 'lib/plaid/client.rb', line 36

def payment_initiation
  @payment_initiation ||= PaymentInitiationApi.new @global_configuration
end

#processorProcessorApi

Access to processor controller.

Returns:



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

def processor
  @processor ||= ProcessorApi.new @global_configuration
end

#sandboxSandboxApi

Access to sandbox controller.

Returns:

  • (SandboxApi)

    Returns the controller instance.



42
43
44
# File 'lib/plaid/client.rb', line 42

def sandbox
  @sandbox ||= SandboxApi.new @global_configuration
end

#signalSignalApi

Access to signal controller.

Returns:

  • (SignalApi)

    Returns the controller instance.



144
145
146
# File 'lib/plaid/client.rb', line 144

def signal
  @signal ||= SignalApi.new @global_configuration
end

#transactionsTransactionsApi

Access to transactions controller.

Returns:



90
91
92
# File 'lib/plaid/client.rb', line 90

def transactions
  @transactions ||= TransactionsApi.new @global_configuration
end

#transferTransferApi

Access to transfer controller.

Returns:



120
121
122
# File 'lib/plaid/client.rb', line 120

def transfer
  @transfer ||= TransferApi.new @global_configuration
end

#user_agent_detailObject



12
13
14
# File 'lib/plaid/client.rb', line 12

def user_agent_detail
  config.user_agent_detail
end

#webhook_verification_keyWebhookVerificationKeyApi

Access to webhook_verification_key controller.

Returns:



102
103
104
# File 'lib/plaid/client.rb', line 102

def webhook_verification_key
  @webhook_verification_key ||= WebhookVerificationKeyApi.new @global_configuration
end