-
Notifications
You must be signed in to change notification settings - Fork 14
/
checkout_api.rb
115 lines (108 loc) · 4.71 KB
/
checkout_api.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# frozen_string_literal: true
module CheckoutSdk
# @!attribute customers
# @return [CheckoutSdk::Customers::CustomersClient]
# @!attribute disputes
# @return [CheckoutSdk::Disputes::DisputesClient]
# @!attribute forex
# @return [CheckoutSdk::Forex::ForexClient]
# @!attribute hosted
# @return [CheckoutSdk::Payments::HostedPaymentsClient]
# @!attribute instruments
# @return [CheckoutSdk::Instruments::InstrumentsClient]
# @!attribute links
# @return [CheckoutSdk::Payments::PaymentsLinksClient]
# @!attribute payments
# @return [CheckoutSdk::Payments::PaymentsClient]
# @!attribute reports
# @return [CheckoutSdk::Reports::ReportsClient]
# @!attribute sessions
# @return [CheckoutSdk::Sessions::SessionsClient]
# @!attribute tokens
# @return [CheckoutSdk::Tokens::TokensClient]
# @!attribute ideal
# @return [CheckoutSdk::Apm::IdealClient]
# @!attribute accounts
# @return [CheckoutSdk::Accounts::AccountsClient]
# @!attribute workflows
# @return [CheckoutSdk::Workflows::WorkflowsClient]
# @!attribute risk
# @return [CheckoutSdk::Risk::RiskClient]
# @!attribute balances
# @return [CheckoutSdk::Balances::BalancesClient]
# @!attribute transfers
# @return [CheckoutSdk::Transfers::TransfersClient]
# @!attribute metadata
# @return [CheckoutSdk::Metadata::MetadataClient]
# @!attribute financial
# @return [CheckoutSdk::Financial::FinancialClient]
# @!attribute issuing
# @return [CheckoutSdk::Issuing::IssuingClient]
class CheckoutApi
attr_reader :customers,
:disputes,
:forex,
:hosted,
:instruments,
:links,
:payments,
:reports,
:sessions,
:tokens,
:ideal,
:accounts,
:workflows,
:risk,
:balances,
:transfers,
:metadata,
:financial,
:issuing,
:contexts
# @param [CheckoutConfiguration] configuration
def initialize(configuration)
api_client = base_api_client configuration
@customers = CheckoutSdk::Customers::CustomersClient.new api_client, configuration
@disputes = CheckoutSdk::Disputes::DisputesClient.new api_client, configuration
@forex = CheckoutSdk::Forex::ForexClient.new api_client, configuration
@hosted = CheckoutSdk::Payments::HostedPaymentsClient.new api_client, configuration
@instruments = CheckoutSdk::Instruments::InstrumentsClient.new api_client, configuration
@links = CheckoutSdk::Payments::PaymentsLinksClient.new api_client, configuration
@payments = CheckoutSdk::Payments::PaymentsClient.new api_client, configuration
@reports = CheckoutSdk::Reports::ReportsClient.new api_client, configuration
@sessions = CheckoutSdk::Sessions::SessionsClient.new api_client, configuration
@tokens = CheckoutSdk::Tokens::TokensClient.new api_client, configuration
@ideal = CheckoutSdk::Apm::IdealClient.new api_client, configuration
@workflows = CheckoutSdk::Workflows::WorkflowsClient.new api_client, configuration
@accounts = CheckoutSdk::Accounts::AccountsClient.new(api_client, files_client(configuration), configuration)
@risk = CheckoutSdk::Risk::RiskClient.new api_client, configuration
@balances = CheckoutSdk::Balances::BalancesClient.new(balances_client(configuration), configuration)
@transfers = CheckoutSdk::Transfers::TransfersClient.new(transfers_client(configuration), configuration)
@metadata = CheckoutSdk::Metadata::MetadataClient.new api_client, configuration
@financial = CheckoutSdk::Financial::FinancialClient.new api_client, configuration
@issuing = CheckoutSdk::Issuing::IssuingClient.new api_client, configuration
@contexts = CheckoutSdk::Payments::PaymentContextsClient.new api_client, configuration
end
private
# @param [CheckoutConfiguration] configuration
# @return [ApiClient]
def base_api_client(configuration)
ApiClient.new(configuration, configuration.environment.base_uri)
end
# @param [CheckoutConfiguration] configuration
# @return [ApiClient]
def files_client(configuration)
ApiClient.new(configuration, configuration.environment.files_uri)
end
# @param [CheckoutConfiguration] configuration
# @return [ApiClient]
def balances_client(configuration)
ApiClient.new(configuration, configuration.environment.balances_uri)
end
# @param [CheckoutConfiguration] configuration
# @return [ApiClient]
def transfers_client(configuration)
ApiClient.new(configuration, configuration.environment.transfers_uri)
end
end
end