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, nil) (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
# 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
    @auth_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.3",
      "X-Fern-Language" => "Ruby",
      requestToken: api_key.to_s
    },
    auth_provider: @auth_provider,
    max_retries: max_retries
  )
end

Instance Method Details

#billPayabli::Bill::Client



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

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

#boardingPayabli::Boarding::Client



135
136
137
# File 'lib/payabli/client.rb', line 135

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

#charge_backsPayabli::ChargeBacks::Client



205
206
207
# File 'lib/payabli/client.rb', line 205

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

#check_capturePayabli::CheckCapture::Client



55
56
57
# File 'lib/payabli/client.rb', line 55

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

#cloudPayabli::Cloud::Client



125
126
127
# File 'lib/payabli/client.rb', line 125

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

#customerPayabli::Customer::Client



50
51
52
# File 'lib/payabli/client.rb', line 50

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

#exportPayabli::Export::Client



145
146
147
# File 'lib/payabli/client.rb', line 145

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

#fundingPayabli::Funding::Client



190
191
192
# File 'lib/payabli/client.rb', line 190

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

#ghost_cardPayabli::GhostCard::Client



180
181
182
# File 'lib/payabli/client.rb', line 180

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

#hosted_payment_pagesPayabli::HostedPaymentPages::Client



95
96
97
# File 'lib/payabli/client.rb', line 95

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

#importPayabli::Import::Client



105
106
107
# File 'lib/payabli/client.rb', line 105

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

#invoicePayabli::Invoice::Client



75
76
77
# File 'lib/payabli/client.rb', line 75

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

#line_itemPayabli::LineItem::Client



130
131
132
# File 'lib/payabli/client.rb', line 130

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

#managementPayabli::Management::Client



155
156
157
# File 'lib/payabli/client.rb', line 155

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

#money_inPayabli::MoneyIn::Client



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

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

#money_outPayabli::MoneyOut::Client



185
186
187
# File 'lib/payabli/client.rb', line 185

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

#notificationPayabli::Notification::Client



165
166
167
# File 'lib/payabli/client.rb', line 165

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

#notificationlogsPayabli::Notificationlogs::Client



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

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

#ocrPayabli::Ocr::Client



115
116
117
# File 'lib/payabli/client.rb', line 115

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

#organizationPayabli::Organization::Client



150
151
152
# File 'lib/payabli/client.rb', line 150

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


80
81
82
# File 'lib/payabli/client.rb', line 80

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

#payment_method_domainPayabli::PaymentMethodDomain::Client



100
101
102
# File 'lib/payabli/client.rb', line 100

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

#payout_subscriptionPayabli::PayoutSubscription::Client



200
201
202
# File 'lib/payabli/client.rb', line 200

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

#paypointPayabli::Paypoint::Client



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

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

#queryPayabli::Query::Client



110
111
112
# File 'lib/payabli/client.rb', line 110

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

#statisticPayabli::Statistic::Client



160
161
162
# File 'lib/payabli/client.rb', line 160

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

#subscriptionPayabli::Subscription::Client



70
71
72
# File 'lib/payabli/client.rb', line 70

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

#templatesPayabli::Templates::Client



140
141
142
# File 'lib/payabli/client.rb', line 140

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

#tokenPayabli::Token::Client



65
66
67
# File 'lib/payabli/client.rb', line 65

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

#token_storagePayabli::TokenStorage::Client



85
86
87
# File 'lib/payabli/client.rb', line 85

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

#userPayabli::User::Client



170
171
172
# File 'lib/payabli/client.rb', line 170

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

#vendorPayabli::Vendor::Client



175
176
177
# File 'lib/payabli/client.rb', line 175

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

#walletPayabli::Wallet::Client



195
196
197
# File 'lib/payabli/client.rb', line 195

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