lago-ruby-client 1.31.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lago/api/client.rb +103 -36
  3. data/lib/lago/api/resources/activity_log.rb +2 -0
  4. data/lib/lago/api/resources/add_on.rb +2 -0
  5. data/lib/lago/api/resources/api_log.rb +29 -0
  6. data/lib/lago/api/resources/applied_coupon.rb +2 -0
  7. data/lib/lago/api/resources/billable_metric.rb +2 -0
  8. data/lib/lago/api/resources/billing_entity.rb +2 -0
  9. data/lib/lago/api/resources/coupon.rb +2 -0
  10. data/lib/lago/api/resources/credit_note.rb +2 -0
  11. data/lib/lago/api/resources/customer.rb +2 -0
  12. data/lib/lago/api/resources/event.rb +2 -0
  13. data/lib/lago/api/resources/fee.rb +2 -0
  14. data/lib/lago/api/resources/gross_revenue.rb +2 -0
  15. data/lib/lago/api/resources/invoice.rb +2 -0
  16. data/lib/lago/api/resources/invoice_collection.rb +2 -0
  17. data/lib/lago/api/resources/invoiced_usage.rb +2 -0
  18. data/lib/lago/api/resources/mrr.rb +2 -0
  19. data/lib/lago/api/resources/organization.rb +2 -0
  20. data/lib/lago/api/resources/overdue_balance.rb +2 -0
  21. data/lib/lago/api/resources/payment.rb +2 -0
  22. data/lib/lago/api/resources/payment_receipt.rb +2 -0
  23. data/lib/lago/api/resources/payment_request.rb +3 -0
  24. data/lib/lago/api/resources/plan.rb +3 -0
  25. data/lib/lago/api/resources/subscription.rb +69 -0
  26. data/lib/lago/api/resources/tax.rb +2 -0
  27. data/lib/lago/api/resources/wallet.rb +2 -0
  28. data/lib/lago/api/resources/wallet_transaction.rb +2 -0
  29. data/lib/lago/api/resources/webhook.rb +2 -0
  30. data/lib/lago/api/resources/webhook_endpoint.rb +2 -0
  31. data/lib/lago/version.rb +1 -1
  32. data/lib/lago-ruby-client.rb +0 -29
  33. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f941a6113843796ddf07fda53643d7840f644067ab0b13525c867568ad9d8e93
4
- data.tar.gz: a6c2744fb1ca3e3d0b42851bf3326f6e4d7cae026812745e6a413b51342ce48c
3
+ metadata.gz: 4f13f9b64684cd3ffb7704dee078805dacc1d53e24015452916ecd12984da76e
4
+ data.tar.gz: 03fd94112276012a112f7c82e029037a0f0c6d9e4bbe1b5aa0ce863d04b278df
5
5
  SHA512:
6
- metadata.gz: bd6619f8a0b306db83e1e38054bca04c4cad84d75f952a24c54d797333d168117bbf05cb90051ded287720ba6f1e502e638b8712ae6a3fe586112997cce9d144
7
- data.tar.gz: 5c19eb94fa5d50f82957105d483a0f9f064b7bb1387d5faa9684bf15992e6feff2aa9f62494d45a0f196b195d6dbbb103aa938842e7215298b187b9ebe341f1b
6
+ metadata.gz: c2b6a6aa21c41a3850cc529f0c3df65d5dc8c1bfc6509caba895c3d1ef0a637a02e3633ddaa145b773defa0dbd61201e628844fde40fdbbc24147a86768bb9f7
7
+ data.tar.gz: 9950cef24db981e02517a536c4690f470ab8070de70cef3e768bdff1ed9e13ddcf211726728ebb77711a8cd9422acb0f82d8620c8e72d373e034585912702d14
@@ -1,5 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+ require 'lago/api/resources/activity_log'
5
+ require 'lago/api/resources/add_on'
6
+ require 'lago/api/resources/api_log'
7
+ require 'lago/api/resources/applied_coupon'
8
+ require 'lago/api/resources/billable_metric'
9
+ require 'lago/api/resources/billing_entity'
10
+ require 'lago/api/resources/coupon'
11
+ require 'lago/api/resources/credit_note'
12
+ require 'lago/api/resources/customer'
13
+ require 'lago/api/resources/event'
14
+ require 'lago/api/resources/fee'
15
+ require 'lago/api/resources/gross_revenue'
16
+ require 'lago/api/resources/invoice'
17
+ require 'lago/api/resources/invoice_collection'
18
+ require 'lago/api/resources/invoiced_usage'
19
+ require 'lago/api/resources/mrr'
20
+ require 'lago/api/resources/organization'
21
+ require 'lago/api/resources/overdue_balance'
22
+ require 'lago/api/resources/payment'
23
+ require 'lago/api/resources/payment_receipt'
24
+ require 'lago/api/resources/payment_request'
25
+ require 'lago/api/resources/plan'
26
+ require 'lago/api/resources/subscription'
27
+ require 'lago/api/resources/tax'
28
+ require 'lago/api/resources/wallet'
29
+ require 'lago/api/resources/wallet_transaction'
30
+ require 'lago/api/resources/webhook'
31
+ require 'lago/api/resources/webhook_endpoint'
32
+
3
33
  module Lago
4
34
  module Api
5
35
  BASE_URL = 'https://api.getlago.com/'
@@ -29,80 +59,117 @@ module Lago
29
59
  URI.join(ingest_url, Lago::Api::API_PATH)
30
60
  end
31
61
 
32
- def customers
33
- Lago::Api::Resources::Customer.new(self)
62
+ # Resources
63
+ def activity_logs
64
+ Resources::ActivityLog.new(self)
34
65
  end
35
66
 
36
- def invoices
37
- Lago::Api::Resources::Invoice.new(self)
67
+ def add_ons
68
+ Resources::AddOn.new(self)
38
69
  end
39
70
 
40
- def subscriptions
41
- Lago::Api::Resources::Subscription.new(self)
71
+ def api_logs
72
+ Resources::ApiLog.new(self)
42
73
  end
43
74
 
44
- def events
45
- Lago::Api::Resources::Event.new(self)
75
+ def applied_coupons
76
+ Resources::AppliedCoupon.new(self)
46
77
  end
47
78
 
48
- def fees
49
- Lago::Api::Resources::Fee.new(self)
79
+ def billable_metrics
80
+ Resources::BillableMetric.new(self)
50
81
  end
51
82
 
52
- def applied_coupons
53
- Lago::Api::Resources::AppliedCoupon.new(self)
83
+ def billing_entities
84
+ Resources::BillingEntity.new(self)
54
85
  end
55
86
 
56
- def billable_metrics
57
- Lago::Api::Resources::BillableMetric.new(self)
87
+ def coupons
88
+ Resources::Coupon.new(self)
58
89
  end
59
90
 
60
91
  def credit_notes
61
- Lago::Api::Resources::CreditNote.new(self)
92
+ Resources::CreditNote.new(self)
62
93
  end
63
94
 
64
- def plans
65
- Lago::Api::Resources::Plan.new(self)
95
+ def customers
96
+ Resources::Customer.new(self)
66
97
  end
67
98
 
68
- def coupons
69
- Lago::Api::Resources::Coupon.new(self)
99
+ def events
100
+ Resources::Event.new(self)
70
101
  end
71
102
 
72
- def add_ons
73
- Lago::Api::Resources::AddOn.new(self)
103
+ def fees
104
+ Resources::Fee.new(self)
105
+ end
106
+
107
+ def gross_revenues
108
+ Resources::GrossRevenue.new(self)
109
+ end
110
+
111
+ def invoice_collections
112
+ Resources::InvoiceCollection.new(self)
113
+ end
114
+
115
+ def invoiced_usages
116
+ Resources::InvoicedUsage.new(self)
117
+ end
118
+
119
+ def invoices
120
+ Resources::Invoice.new(self)
121
+ end
122
+
123
+ def mrrs
124
+ Resources::Mrr.new(self)
74
125
  end
75
126
 
76
127
  def organizations
77
- Lago::Api::Resources::Organization.new(self)
128
+ Resources::Organization.new(self)
78
129
  end
79
130
 
80
- def taxes
81
- Lago::Api::Resources::Tax.new(self)
131
+ def overdue_balances
132
+ Resources::OverdueBalance.new(self)
82
133
  end
83
134
 
84
- def wallets
85
- Lago::Api::Resources::Wallet.new(self)
135
+ def payment_receipts
136
+ Resources::PaymentReceipt.new(self)
86
137
  end
87
138
 
88
- def wallet_transactions
89
- Lago::Api::Resources::WalletTransaction.new(self)
139
+ def payment_requests
140
+ Resources::PaymentRequest.new(self)
90
141
  end
91
142
 
92
- def webhooks
93
- Lago::Api::Resources::Webhook.new(self)
143
+ def payments
144
+ Resources::Payment.new(self)
94
145
  end
95
146
 
96
- def webhook_endpoints
97
- Lago::Api::Resources::WebhookEndpoint.new(self)
147
+ def plans
148
+ Resources::Plan.new(self)
98
149
  end
99
150
 
100
- def billing_entities
101
- Lago::Api::Resources::BillingEntity.new(self)
151
+ def subscriptions
152
+ Resources::Subscription.new(self)
102
153
  end
103
154
 
104
- def activity_logs
105
- Lago::Api::Resources::ActivityLog.new(self)
155
+ def taxes
156
+ Resources::Tax.new(self)
157
+ end
158
+
159
+ def wallet_transactions
160
+ Resources::WalletTransaction.new(self)
161
+ end
162
+
163
+ def wallets
164
+ Resources::Wallet.new(self)
165
+ end
166
+
167
+ def webhook_endpoints
168
+ Resources::WebhookEndpoint.new(self)
169
+ end
170
+
171
+ def webhooks
172
+ Resources::Webhook.new(self)
106
173
  end
107
174
  end
108
175
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'lago/api/resources/base'
4
+
5
+ module Lago
6
+ module Api
7
+ module Resources
8
+ class ApiLog < Base
9
+ undef_method :create, :update, :destroy
10
+
11
+ def api_resource
12
+ 'api_logs'
13
+ end
14
+
15
+ def root_name
16
+ 'api_log'
17
+ end
18
+
19
+ def whitelist_params(params)
20
+ {
21
+ root_name => {
22
+ api_log: params[:request_id],
23
+ },
24
+ }
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -16,6 +18,7 @@ module Lago
16
18
  result_hash = {
17
19
  email: params[:email],
18
20
  external_customer_id: params[:external_customer_id],
21
+ payment_status: params[:payment_status],
19
22
  lago_invoice_ids: params[:lago_invoice_ids]
20
23
  }.compact
21
24
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -67,6 +69,7 @@ module Lago
67
69
  :properties,
68
70
  :filters,
69
71
  :tax_codes,
72
+ :applied_pricing_unit,
70
73
  )
71
74
 
72
75
  processed_charges << result unless result.empty?
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -33,6 +35,38 @@ module Lago
33
35
  JSON.parse(response.to_json, object_class: OpenStruct).lifetime_usage
34
36
  end
35
37
 
38
+ def get_alert(external_subscription_id, code)
39
+ response = connection.get(alert_uri(external_subscription_id, code), identifier: nil)
40
+ JSON.parse(response.to_json, object_class: OpenStruct).alert
41
+ end
42
+
43
+ def update_alert(external_subscription_id, code, params)
44
+ response = connection.put(
45
+ alert_uri(external_subscription_id, code),
46
+ identifier: nil,
47
+ body: whitelist_alert_update_params(params),
48
+ )
49
+ JSON.parse(response.to_json, object_class: OpenStruct).alert
50
+ end
51
+
52
+ def delete_alert(external_subscription_id, code)
53
+ response = connection.destroy(alert_uri(external_subscription_id, code), identifier: nil)
54
+ JSON.parse(response.to_json, object_class: OpenStruct).alert
55
+ end
56
+
57
+ def get_alerts(external_subscription_id)
58
+ response = connection.get(alert_uri(external_subscription_id), identifier: nil)
59
+ JSON.parse(response.to_json, object_class: OpenStruct).alerts
60
+ end
61
+
62
+ def create_alert(external_subscription_id, params)
63
+ response = connection.post(
64
+ whitelist_alert_create_params(params),
65
+ alert_uri(external_subscription_id),
66
+ )
67
+ JSON.parse(response.to_json, object_class: OpenStruct).alert
68
+ end
69
+
36
70
  def whitelist_params(params)
37
71
  {
38
72
  root_name => {
@@ -55,6 +89,41 @@ module Lago
55
89
  },
56
90
  }
57
91
  end
92
+
93
+ def whitelist_alert_create_params(params)
94
+ {
95
+ alert: {
96
+ alert_type: params[:alert_type],
97
+ name: params[:name],
98
+ code: params[:code],
99
+ billable_metric_code: params[:billable_metric_code],
100
+ thresholds: params[:thresholds],
101
+ }.compact,
102
+ }
103
+ end
104
+
105
+ def whitelist_alert_update_params(params)
106
+ {
107
+ alert: {
108
+ name: params[:name],
109
+ code: params[:code],
110
+ billable_metric_code: params[:billable_metric_code],
111
+ thresholds: params[:thresholds],
112
+ }.compact,
113
+ }
114
+ end
115
+
116
+ def whitelist_thresholds(params)
117
+ (params || []).map do |p|
118
+ (p || {}).slice(:code, :value, :recurring)
119
+ end
120
+ end
121
+
122
+ private
123
+
124
+ def alert_uri(external_subscription_id, code = nil)
125
+ URI("#{client.base_api_url}#{api_resource}/#{external_subscription_id}/alerts#{code ? "/#{code}" : ''}")
126
+ end
58
127
  end
59
128
  end
60
129
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lago/api/resources/base'
4
+
3
5
  module Lago
4
6
  module Api
5
7
  module Resources
data/lib/lago/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lago
4
- VERSION = '1.31.0'
4
+ VERSION = '1.32.0'
5
5
  end
@@ -11,32 +11,3 @@ require 'lago/version'
11
11
  require 'lago/api/client'
12
12
  require 'lago/api/connection'
13
13
  require 'lago/api/http_error'
14
-
15
- require 'lago/api/resources/base'
16
- require 'lago/api/resources/activity_log'
17
- require 'lago/api/resources/add_on'
18
- require 'lago/api/resources/applied_coupon'
19
- require 'lago/api/resources/billable_metric'
20
- require 'lago/api/resources/billing_entity'
21
- require 'lago/api/resources/coupon'
22
- require 'lago/api/resources/credit_note'
23
- require 'lago/api/resources/customer'
24
- require 'lago/api/resources/event'
25
- require 'lago/api/resources/fee'
26
- require 'lago/api/resources/gross_revenue'
27
- require 'lago/api/resources/invoice'
28
- require 'lago/api/resources/invoice_collection'
29
- require 'lago/api/resources/invoiced_usage'
30
- require 'lago/api/resources/mrr'
31
- require 'lago/api/resources/organization'
32
- require 'lago/api/resources/overdue_balance'
33
- require 'lago/api/resources/payment'
34
- require 'lago/api/resources/payment_receipt'
35
- require 'lago/api/resources/payment_request'
36
- require 'lago/api/resources/plan'
37
- require 'lago/api/resources/subscription'
38
- require 'lago/api/resources/tax'
39
- require 'lago/api/resources/wallet'
40
- require 'lago/api/resources/wallet_transaction'
41
- require 'lago/api/resources/webhook'
42
- require 'lago/api/resources/webhook_endpoint'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lago-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.31.0
4
+ version: 1.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lovro Colic
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-06-27 00:00:00.000000000 Z
11
+ date: 2025-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt
@@ -233,6 +233,7 @@ files:
233
233
  - lib/lago/api/http_error.rb
234
234
  - lib/lago/api/resources/activity_log.rb
235
235
  - lib/lago/api/resources/add_on.rb
236
+ - lib/lago/api/resources/api_log.rb
236
237
  - lib/lago/api/resources/applied_coupon.rb
237
238
  - lib/lago/api/resources/base.rb
238
239
  - lib/lago/api/resources/billable_metric.rb