Class: Lago::Api::Client

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, api_url: nil, use_ingest_service: false, ingest_api_url: nil, **options) ⇒ Client

Returns a new instance of Client.



68
69
70
71
72
73
74
75
76
# File 'lib/lago/api/client.rb', line 68

def initialize(api_key: nil, api_url: nil, use_ingest_service: false, ingest_api_url: nil, **options)
  @api_key = api_key
  @api_url = api_url
  @use_ingest_service = use_ingest_service
  @ingest_api_url = ingest_api_url
  @max_retries = options.fetch(:max_retries, 3)
  @retry_on_rate_limit = options.fetch(:retry_on_rate_limit, true)
  @on_rate_limit_info = options[:on_rate_limit_info]
end

Instance Attribute Details

#api_keyObject (readonly)

Returns the value of attribute api_key.



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

def api_key
  @api_key
end

#api_urlObject (readonly)

Returns the value of attribute api_url.



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

def api_url
  @api_url
end

#ingest_api_urlObject (readonly)

Returns the value of attribute ingest_api_url.



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

def ingest_api_url
  @ingest_api_url
end

#max_retriesObject (readonly)

Returns the value of attribute max_retries.



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

def max_retries
  @max_retries
end

#on_rate_limit_infoObject (readonly)

Returns the value of attribute on_rate_limit_info.



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

def on_rate_limit_info
  @on_rate_limit_info
end

#retry_on_rate_limitObject (readonly)

Returns the value of attribute retry_on_rate_limit.



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

def retry_on_rate_limit
  @retry_on_rate_limit
end

#use_ingest_serviceObject (readonly)

Returns the value of attribute use_ingest_service.



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

def use_ingest_service
  @use_ingest_service
end

Instance Method Details

#activity_logsObject

Resources



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

def activity_logs
  Resources::ActivityLog.new(self)
end

#add_onsObject



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

def add_ons
  Resources::AddOn.new(self)
end

#api_logsObject



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

def api_logs
  Resources::ApiLog.new(self)
end

#applied_couponsObject



104
105
106
# File 'lib/lago/api/client.rb', line 104

def applied_coupons
  Resources::AppliedCoupon.new(self)
end

#base_api_urlObject



78
79
80
81
82
# File 'lib/lago/api/client.rb', line 78

def base_api_url
  base_url = api_url.nil? ? Lago::Api::BASE_URL : api_url

  URI.join(base_url, Lago::Api::API_PATH)
end

#base_ingest_api_urlObject



84
85
86
87
88
89
# File 'lib/lago/api/client.rb', line 84

def base_ingest_api_url
  return base_api_url unless use_ingest_service

  ingest_url = ingest_api_url.nil? ? Lago::Api::BASE_INGEST_URL : ingest_api_url
  URI.join(ingest_url, Lago::Api::API_PATH)
end

#billable_metricsObject



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

def billable_metrics
  Resources::BillableMetric.new(self)
end

#billing_entitiesObject



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

def billing_entities
  Resources::BillingEntity.new(self)
end

#couponsObject



116
117
118
# File 'lib/lago/api/client.rb', line 116

def coupons
  Resources::Coupon.new(self)
end

#credit_notesObject



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

def credit_notes
  Resources::CreditNote.new(self)
end

#customer_applied_coupons(resource_id) ⇒ Object



128
129
130
# File 'lib/lago/api/client.rb', line 128

def customer_applied_coupons(resource_id)
  Resources::Customers::AppliedCoupon.new(self, resource_id)
end

#customer_credit_notes(resource_id) ⇒ Object



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

def customer_credit_notes(resource_id)
  Resources::Customers::CreditNote.new(self, resource_id)
end

#customer_invoices(resource_id) ⇒ Object



136
137
138
# File 'lib/lago/api/client.rb', line 136

def customer_invoices(resource_id)
  Resources::Customers::Invoice.new(self, resource_id)
end

#customer_payment_methods(resource_id) ⇒ Object



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

def customer_payment_methods(resource_id)
  Resources::Customers::PaymentMethod.new(self, resource_id)
end

#customer_payment_requests(resource_id) ⇒ Object



148
149
150
# File 'lib/lago/api/client.rb', line 148

def customer_payment_requests(resource_id)
  Resources::Customers::PaymentRequest.new(self, resource_id)
end

#customer_payments(resource_id) ⇒ Object



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

def customer_payments(resource_id)
  Resources::Customers::Payment.new(self, resource_id)
end

#customer_subscriptions(resource_id) ⇒ Object



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

def customer_subscriptions(resource_id)
  Resources::Customers::Subscription.new(self, resource_id)
end

#customer_wallets(resource_id) ⇒ Object



156
157
158
# File 'lib/lago/api/client.rb', line 156

def customer_wallets(resource_id)
  Resources::Customers::Wallet.new(self, resource_id)
end

#customersObject



124
125
126
# File 'lib/lago/api/client.rb', line 124

def customers
  Resources::Customer.new(self)
end

#eventsObject



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

def events
  Resources::Event.new(self)
end

#featuresObject



164
165
166
# File 'lib/lago/api/client.rb', line 164

def features
  Resources::Feature.new(self)
end

#feesObject



168
169
170
# File 'lib/lago/api/client.rb', line 168

def fees
  Resources::Fee.new(self)
end

#gross_revenuesObject



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

def gross_revenues
  Resources::GrossRevenue.new(self)
end

#invoice_collectionsObject



176
177
178
# File 'lib/lago/api/client.rb', line 176

def invoice_collections
  Resources::InvoiceCollection.new(self)
end

#invoiced_usagesObject



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

def invoiced_usages
  Resources::InvoicedUsage.new(self)
end

#invoicesObject



184
185
186
# File 'lib/lago/api/client.rb', line 184

def invoices
  Resources::Invoice.new(self)
end

#mrrsObject



188
189
190
# File 'lib/lago/api/client.rb', line 188

def mrrs
  Resources::Mrr.new(self)
end

#order_formsObject



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

def order_forms
  Resources::OrderForm.new(self)
end

#ordersObject



196
197
198
# File 'lib/lago/api/client.rb', line 196

def orders
  Resources::Order.new(self)
end

#organizationsObject



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

def organizations
  Resources::Organization.new(self)
end

#overdue_balancesObject



204
205
206
# File 'lib/lago/api/client.rb', line 204

def overdue_balances
  Resources::OverdueBalance.new(self)
end

#payment_receiptsObject



208
209
210
# File 'lib/lago/api/client.rb', line 208

def payment_receipts
  Resources::PaymentReceipt.new(self)
end

#payment_requestsObject



212
213
214
# File 'lib/lago/api/client.rb', line 212

def payment_requests
  Resources::PaymentRequest.new(self)
end

#paymentsObject



216
217
218
# File 'lib/lago/api/client.rb', line 216

def payments
  Resources::Payment.new(self)
end

#plansObject



220
221
222
# File 'lib/lago/api/client.rb', line 220

def plans
  Resources::Plan.new(self)
end

#quote_versionsObject



228
229
230
# File 'lib/lago/api/client.rb', line 228

def quote_versions
  Resources::QuoteVersion.new(self)
end

#quotesObject



224
225
226
# File 'lib/lago/api/client.rb', line 224

def quotes
  Resources::Quote.new(self)
end

#subscriptionsObject



232
233
234
# File 'lib/lago/api/client.rb', line 232

def subscriptions
  Resources::Subscription.new(self)
end

#taxesObject



236
237
238
# File 'lib/lago/api/client.rb', line 236

def taxes
  Resources::Tax.new(self)
end

#wallet_transactionsObject



240
241
242
# File 'lib/lago/api/client.rb', line 240

def wallet_transactions
  Resources::WalletTransaction.new(self)
end

#walletsObject



244
245
246
# File 'lib/lago/api/client.rb', line 244

def wallets
  Resources::Wallet.new(self)
end

#webhook_endpointsObject



248
249
250
# File 'lib/lago/api/client.rb', line 248

def webhook_endpoints
  Resources::WebhookEndpoint.new(self)
end

#webhooksObject



252
253
254
# File 'lib/lago/api/client.rb', line 252

def webhooks
  Resources::Webhook.new(self)
end