Class: Payabli::Client

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

Instance Method Summary collapse

Constructor Details

#initialize(base_url: nil, client_id: ENV.fetch("OAUTH_CLIENT_ID", nil), client_secret: ENV.fetch("OAUTH_CLIENT_SECRET", nil), api_key: nil, max_retries: 2) ⇒ void

Parameters:

  • base_url (String, nil) (defaults to: nil)
  • client_id (String, nil) (defaults to: ENV.fetch("OAUTH_CLIENT_ID", nil))
  • client_secret (String, nil) (defaults to: ENV.fetch("OAUTH_CLIENT_SECRET", nil))
  • api_key (String) (defaults to: nil)
  • max_retries (Integer) (defaults to: 2)


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
# File 'lib/payabli/client.rb', line 12

def initialize(base_url: nil, client_id: ENV.fetch("OAUTH_CLIENT_ID", nil), client_secret: ENV.fetch("OAUTH_CLIENT_SECRET", nil), api_key: nil, max_retries: 2)
  if !client_id.to_s.empty? && !client_secret.to_s.empty?
    # Create an unauthenticated client for the auth endpoint
    auth_raw_client = Payabli::Internal::Http::RawClient.new(
      base_url: base_url || Payabli::Environment::SANDBOX,
      headers: {
        "X-Fern-Language" => "Ruby"
      }
    )

    # Create the auth client for token retrieval
    auth_client = Payabli::Token::Client.new(client: auth_raw_client)

    # Create the OAuth provider with the auth client and credentials
    @oauth_provider = Payabli::Internal::OAuthProvider.new(
      auth_client: auth_client,
      options: { base_url: base_url, client_id: client_id, client_secret: client_secret }
    )
  end

  @raw_client = Payabli::Internal::Http::RawClient.new(
    base_url: base_url || Payabli::Environment::SANDBOX,
    headers: {
      "User-Agent" => "payabli/3.0.6",
      "X-Fern-Language" => "Ruby"
    },
    auth_provider: Payabli::Internal::RoutingAuthProvider.new(
      api_key: api_key,
      oauth_provider: @oauth_provider
    ),
    max_retries: max_retries
  )
end

Instance Method Details

#billPayabli::Bill::Client



47
48
49
# File 'lib/payabli/client.rb', line 47

def bill
  @bill ||= Payabli::Bill::Client.new(client: @raw_client)
end

#boardingPayabli::Boarding::Client



137
138
139
# File 'lib/payabli/client.rb', line 137

def boarding
  @boarding ||= Payabli::Boarding::Client.new(client: @raw_client)
end

#charge_backsPayabli::ChargeBacks::Client



207
208
209
# File 'lib/payabli/client.rb', line 207

def charge_backs
  @charge_backs ||= Payabli::ChargeBacks::Client.new(client: @raw_client)
end

#check_capturePayabli::CheckCapture::Client



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

def check_capture
  @check_capture ||= Payabli::CheckCapture::Client.new(client: @raw_client)
end

#cloudPayabli::Cloud::Client



127
128
129
# File 'lib/payabli/client.rb', line 127

def cloud
  @cloud ||= Payabli::Cloud::Client.new(client: @raw_client)
end

#customerPayabli::Customer::Client



52
53
54
# File 'lib/payabli/client.rb', line 52

def customer
  @customer ||= Payabli::Customer::Client.new(client: @raw_client)
end

#exportPayabli::Export::Client



147
148
149
# File 'lib/payabli/client.rb', line 147

def export
  @export ||= Payabli::Export::Client.new(client: @raw_client)
end

#fundingPayabli::Funding::Client



192
193
194
# File 'lib/payabli/client.rb', line 192

def funding
  @funding ||= Payabli::Funding::Client.new(client: @raw_client)
end

#ghost_cardPayabli::GhostCard::Client



182
183
184
# File 'lib/payabli/client.rb', line 182

def ghost_card
  @ghost_card ||= Payabli::GhostCard::Client.new(client: @raw_client)
end

#hosted_payment_pagesPayabli::HostedPaymentPages::Client



97
98
99
# File 'lib/payabli/client.rb', line 97

def hosted_payment_pages
  @hosted_payment_pages ||= Payabli::HostedPaymentPages::Client.new(client: @raw_client)
end

#importPayabli::Import::Client



107
108
109
# File 'lib/payabli/client.rb', line 107

def import
  @import ||= Payabli::Import::Client.new(client: @raw_client)
end

#invoicePayabli::Invoice::Client



77
78
79
# File 'lib/payabli/client.rb', line 77

def invoice
  @invoice ||= Payabli::Invoice::Client.new(client: @raw_client)
end

#line_itemPayabli::LineItem::Client



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

def line_item
  @line_item ||= Payabli::LineItem::Client.new(client: @raw_client)
end

#managementPayabli::Management::Client



157
158
159
# File 'lib/payabli/client.rb', line 157

def management
  @management ||= Payabli::Management::Client.new(client: @raw_client)
end

#money_inPayabli::MoneyIn::Client



62
63
64
# File 'lib/payabli/client.rb', line 62

def money_in
  @money_in ||= Payabli::MoneyIn::Client.new(client: @raw_client)
end

#money_outPayabli::MoneyOut::Client



187
188
189
# File 'lib/payabli/client.rb', line 187

def money_out
  @money_out ||= Payabli::MoneyOut::Client.new(client: @raw_client)
end

#notificationPayabli::Notification::Client



167
168
169
# File 'lib/payabli/client.rb', line 167

def notification
  @notification ||= Payabli::Notification::Client.new(client: @raw_client)
end

#notificationlogsPayabli::Notificationlogs::Client



122
123
124
# File 'lib/payabli/client.rb', line 122

def notificationlogs
  @notificationlogs ||= Payabli::Notificationlogs::Client.new(client: @raw_client)
end

#ocrPayabli::Ocr::Client



117
118
119
# File 'lib/payabli/client.rb', line 117

def ocr
  @ocr ||= Payabli::Ocr::Client.new(client: @raw_client)
end

#organizationPayabli::Organization::Client



152
153
154
# File 'lib/payabli/client.rb', line 152

def organization
  @organization ||= Payabli::Organization::Client.new(client: @raw_client)
end


82
83
84
# File 'lib/payabli/client.rb', line 82

def payment_link
  @payment_link ||= Payabli::PaymentLink::Client.new(client: @raw_client)
end

#payment_method_domainPayabli::PaymentMethodDomain::Client



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

def payment_method_domain
  @payment_method_domain ||= Payabli::PaymentMethodDomain::Client.new(client: @raw_client)
end

#payout_subscriptionPayabli::PayoutSubscription::Client



202
203
204
# File 'lib/payabli/client.rb', line 202

def payout_subscription
  @payout_subscription ||= Payabli::PayoutSubscription::Client.new(client: @raw_client)
end

#paypointPayabli::Paypoint::Client



92
93
94
# File 'lib/payabli/client.rb', line 92

def paypoint
  @paypoint ||= Payabli::Paypoint::Client.new(client: @raw_client)
end

#queryPayabli::Query::Client



112
113
114
# File 'lib/payabli/client.rb', line 112

def query
  @query ||= Payabli::Query::Client.new(client: @raw_client)
end

#statisticPayabli::Statistic::Client



162
163
164
# File 'lib/payabli/client.rb', line 162

def statistic
  @statistic ||= Payabli::Statistic::Client.new(client: @raw_client)
end

#subscriptionPayabli::Subscription::Client



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

def subscription
  @subscription ||= Payabli::Subscription::Client.new(client: @raw_client)
end

#templatesPayabli::Templates::Client



142
143
144
# File 'lib/payabli/client.rb', line 142

def templates
  @templates ||= Payabli::Templates::Client.new(client: @raw_client)
end

#tokenPayabli::Token::Client



67
68
69
# File 'lib/payabli/client.rb', line 67

def token
  @token ||= Payabli::Token::Client.new(client: @raw_client)
end

#token_storagePayabli::TokenStorage::Client



87
88
89
# File 'lib/payabli/client.rb', line 87

def token_storage
  @token_storage ||= Payabli::TokenStorage::Client.new(client: @raw_client)
end

#userPayabli::User::Client



172
173
174
# File 'lib/payabli/client.rb', line 172

def user
  @user ||= Payabli::User::Client.new(client: @raw_client)
end

#vendorPayabli::Vendor::Client



177
178
179
# File 'lib/payabli/client.rb', line 177

def vendor
  @vendor ||= Payabli::Vendor::Client.new(client: @raw_client)
end

#walletPayabli::Wallet::Client



197
198
199
# File 'lib/payabli/client.rb', line 197

def wallet
  @wallet ||= Payabli::Wallet::Client.new(client: @raw_client)
end