dodopayments 2.4.1 → 2.6.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/README.md +1 -1
- data/lib/dodopayments/internal/util.rb +18 -4
- data/lib/dodopayments/models/abandoned_checkout_detected_webhook_event.rb +126 -0
- data/lib/dodopayments/models/abandoned_checkout_recovered_webhook_event.rb +126 -0
- data/lib/dodopayments/models/balance_ledger_entry.rb +2 -0
- data/lib/dodopayments/models/balance_retrieve_ledger_params.rb +2 -0
- data/lib/dodopayments/models/discount.rb +8 -1
- data/lib/dodopayments/models/discount_create_params.rb +9 -1
- data/lib/dodopayments/models/discount_update_params.rb +9 -1
- data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +118 -0
- data/lib/dodopayments/models/dunning_started_webhook_event.rb +118 -0
- data/lib/dodopayments/models/payouts/breakup/detail_download_csv_params.rb +24 -0
- data/lib/dodopayments/models/payouts/breakup/detail_list_params.rb +41 -0
- data/lib/dodopayments/models/payouts/breakup/detail_list_response.rb +94 -0
- data/lib/dodopayments/models/payouts/breakup_retrieve_params.rb +22 -0
- data/lib/dodopayments/models/payouts/breakup_retrieve_response.rb +37 -0
- data/lib/dodopayments/models/subscription_update_params.rb +19 -1
- data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +9 -1
- data/lib/dodopayments/models/unwrap_webhook_event.rb +9 -1
- data/lib/dodopayments/models/webhook_event_type.rb +6 -0
- data/lib/dodopayments/models/webhook_payload.rb +168 -3
- data/lib/dodopayments/models.rb +10 -0
- data/lib/dodopayments/resources/discounts.rb +6 -2
- data/lib/dodopayments/resources/payouts/breakup/details.rb +72 -0
- data/lib/dodopayments/resources/payouts/breakup.rb +43 -0
- data/lib/dodopayments/resources/payouts.rb +4 -0
- data/lib/dodopayments/resources/subscriptions.rb +3 -1
- data/lib/dodopayments/resources/webhooks.rb +2 -2
- data/lib/dodopayments/version.rb +1 -1
- data/lib/dodopayments.rb +11 -0
- data/rbi/dodopayments/internal/util.rbi +8 -0
- data/rbi/dodopayments/models/abandoned_checkout_detected_webhook_event.rbi +271 -0
- data/rbi/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbi +273 -0
- data/rbi/dodopayments/models/balance_ledger_entry.rbi +10 -0
- data/rbi/dodopayments/models/balance_retrieve_ledger_params.rbi +10 -0
- data/rbi/dodopayments/models/discount.rbi +6 -0
- data/rbi/dodopayments/models/discount_create_params.rbi +11 -0
- data/rbi/dodopayments/models/discount_update_params.rbi +8 -0
- data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +249 -0
- data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +249 -0
- data/rbi/dodopayments/models/payouts/breakup/detail_download_csv_params.rbi +45 -0
- data/rbi/dodopayments/models/payouts/breakup/detail_list_params.rbi +70 -0
- data/rbi/dodopayments/models/payouts/breakup/detail_list_response.rbi +116 -0
- data/rbi/dodopayments/models/payouts/breakup_retrieve_params.rbi +40 -0
- data/rbi/dodopayments/models/payouts/breakup_retrieve_response.rbi +53 -0
- data/rbi/dodopayments/models/subscription_update_params.rbi +54 -0
- data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +4 -0
- data/rbi/dodopayments/models/unwrap_webhook_event.rbi +4 -0
- data/rbi/dodopayments/models/webhook_event_type.rbi +21 -0
- data/rbi/dodopayments/models/webhook_payload.rbi +400 -4
- data/rbi/dodopayments/models.rbi +13 -0
- data/rbi/dodopayments/resources/discounts.rbi +6 -0
- data/rbi/dodopayments/resources/payouts/breakup/details.rbi +60 -0
- data/rbi/dodopayments/resources/payouts/breakup.rbi +36 -0
- data/rbi/dodopayments/resources/payouts.rbi +3 -0
- data/rbi/dodopayments/resources/subscriptions.rbi +5 -0
- data/rbi/dodopayments/resources/webhooks.rbi +8 -0
- data/sig/dodopayments/internal/util.rbs +4 -0
- data/sig/dodopayments/models/abandoned_checkout_detected_webhook_event.rbs +113 -0
- data/sig/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbs +113 -0
- data/sig/dodopayments/models/balance_ledger_entry.rbs +4 -0
- data/sig/dodopayments/models/balance_retrieve_ledger_params.rbs +4 -0
- data/sig/dodopayments/models/discount.rbs +5 -0
- data/sig/dodopayments/models/discount_create_params.rbs +7 -0
- data/sig/dodopayments/models/discount_update_params.rbs +5 -0
- data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +110 -0
- data/sig/dodopayments/models/dunning_started_webhook_event.rbs +110 -0
- data/sig/dodopayments/models/payouts/breakup/detail_download_csv_params.rbs +28 -0
- data/sig/dodopayments/models/payouts/breakup/detail_list_params.rbs +40 -0
- data/sig/dodopayments/models/payouts/breakup/detail_list_response.rbs +64 -0
- data/sig/dodopayments/models/payouts/breakup_retrieve_params.rbs +25 -0
- data/sig/dodopayments/models/payouts/breakup_retrieve_response.rbs +23 -0
- data/sig/dodopayments/models/subscription_update_params.rbs +20 -0
- data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -1
- data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -1
- data/sig/dodopayments/models/webhook_event_type.rbs +12 -0
- data/sig/dodopayments/models/webhook_payload.rbs +165 -0
- data/sig/dodopayments/models.rbs +10 -0
- data/sig/dodopayments/resources/discounts.rbs +2 -0
- data/sig/dodopayments/resources/payouts/breakup/details.rbs +23 -0
- data/sig/dodopayments/resources/payouts/breakup.rbs +16 -0
- data/sig/dodopayments/resources/payouts.rbs +2 -0
- data/sig/dodopayments/resources/subscriptions.rbs +1 -0
- data/sig/dodopayments/resources/webhooks.rbs +10 -2
- metadata +35 -2
data/lib/dodopayments/models.rb
CHANGED
|
@@ -39,6 +39,10 @@ module Dodopayments
|
|
|
39
39
|
mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
AbandonedCheckoutDetectedWebhookEvent = Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent
|
|
43
|
+
|
|
44
|
+
AbandonedCheckoutRecoveredWebhookEvent = Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent
|
|
45
|
+
|
|
42
46
|
AddMeterToPrice = Dodopayments::Models::AddMeterToPrice
|
|
43
47
|
|
|
44
48
|
AddonCartResponseItem = Dodopayments::Models::AddonCartResponseItem
|
|
@@ -217,6 +221,10 @@ module Dodopayments
|
|
|
217
221
|
|
|
218
222
|
DisputeWonWebhookEvent = Dodopayments::Models::DisputeWonWebhookEvent
|
|
219
223
|
|
|
224
|
+
DunningRecoveredWebhookEvent = Dodopayments::Models::DunningRecoveredWebhookEvent
|
|
225
|
+
|
|
226
|
+
DunningStartedWebhookEvent = Dodopayments::Models::DunningStartedWebhookEvent
|
|
227
|
+
|
|
220
228
|
Event = Dodopayments::Models::Event
|
|
221
229
|
|
|
222
230
|
EventInput = Dodopayments::Models::EventInput
|
|
@@ -309,6 +317,8 @@ module Dodopayments
|
|
|
309
317
|
|
|
310
318
|
PayoutListParams = Dodopayments::Models::PayoutListParams
|
|
311
319
|
|
|
320
|
+
Payouts = Dodopayments::Models::Payouts
|
|
321
|
+
|
|
312
322
|
Price = Dodopayments::Models::Price
|
|
313
323
|
|
|
314
324
|
Product = Dodopayments::Models::Product
|
|
@@ -9,7 +9,7 @@ module Dodopayments
|
|
|
9
9
|
# POST /discounts If `code` is omitted or empty, a random 16-char uppercase code
|
|
10
10
|
# is generated.
|
|
11
11
|
#
|
|
12
|
-
# @overload create(amount:, type:, code: nil, expires_at: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, usage_limit: nil, request_options: {})
|
|
12
|
+
# @overload create(amount:, type:, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, usage_limit: nil, request_options: {})
|
|
13
13
|
#
|
|
14
14
|
# @param amount [Integer] The discount amount.
|
|
15
15
|
#
|
|
@@ -19,6 +19,8 @@ module Dodopayments
|
|
|
19
19
|
#
|
|
20
20
|
# @param expires_at [Time, nil] When the discount expires, if ever.
|
|
21
21
|
#
|
|
22
|
+
# @param metadata [Hash{Symbol=>String}] Additional metadata for the discount
|
|
23
|
+
#
|
|
22
24
|
# @param name [String, nil]
|
|
23
25
|
#
|
|
24
26
|
# @param preserve_on_plan_change [Boolean] Whether this discount should be preserved when a subscription changes plans.
|
|
@@ -70,7 +72,7 @@ module Dodopayments
|
|
|
70
72
|
#
|
|
71
73
|
# PATCH /discounts/{discount_id}
|
|
72
74
|
#
|
|
73
|
-
# @overload update(discount_id, amount: nil, code: nil, expires_at: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, type: nil, usage_limit: nil, request_options: {})
|
|
75
|
+
# @overload update(discount_id, amount: nil, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, type: nil, usage_limit: nil, request_options: {})
|
|
74
76
|
#
|
|
75
77
|
# @param discount_id [String] Discount Id
|
|
76
78
|
#
|
|
@@ -80,6 +82,8 @@ module Dodopayments
|
|
|
80
82
|
#
|
|
81
83
|
# @param expires_at [Time, nil]
|
|
82
84
|
#
|
|
85
|
+
# @param metadata [Hash{Symbol=>String}, nil] Additional metadata for the discount
|
|
86
|
+
#
|
|
83
87
|
# @param name [String, nil]
|
|
84
88
|
#
|
|
85
89
|
# @param preserve_on_plan_change [Boolean, nil] Whether this discount should be preserved when a subscription changes plans.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dodopayments
|
|
4
|
+
module Resources
|
|
5
|
+
class Payouts
|
|
6
|
+
class Breakup
|
|
7
|
+
class Details
|
|
8
|
+
# Returns paginated individual balance ledger entries for a payout, with each
|
|
9
|
+
# entry's amount pro-rated into the payout's currency. Supports pagination via
|
|
10
|
+
# `page_size` (default 10, max 100) and `page_number` (default 0) query
|
|
11
|
+
# parameters.
|
|
12
|
+
#
|
|
13
|
+
# @overload list(payout_id, page_number: nil, page_size: nil, request_options: {})
|
|
14
|
+
#
|
|
15
|
+
# @param payout_id [String] Id of the Payout to get breakup for
|
|
16
|
+
#
|
|
17
|
+
# @param page_number [Integer] Page number (0-indexed). Default: 0.
|
|
18
|
+
#
|
|
19
|
+
# @param page_size [Integer] Number of items per page. Default: 10, Max: 100.
|
|
20
|
+
#
|
|
21
|
+
# @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
22
|
+
#
|
|
23
|
+
# @return [Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Payouts::Breakup::DetailListResponse>]
|
|
24
|
+
#
|
|
25
|
+
# @see Dodopayments::Models::Payouts::Breakup::DetailListParams
|
|
26
|
+
def list(payout_id, params = {})
|
|
27
|
+
parsed, options = Dodopayments::Payouts::Breakup::DetailListParams.dump_request(params)
|
|
28
|
+
query = Dodopayments::Internal::Util.encode_query_params(parsed)
|
|
29
|
+
@client.request(
|
|
30
|
+
method: :get,
|
|
31
|
+
path: ["payouts/%1$s/breakup/details", payout_id],
|
|
32
|
+
query: query,
|
|
33
|
+
page: Dodopayments::Internal::DefaultPageNumberPagination,
|
|
34
|
+
model: Dodopayments::Models::Payouts::Breakup::DetailListResponse,
|
|
35
|
+
options: options
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Downloads the complete payout breakup as a CSV file. Each row represents a
|
|
40
|
+
# balance ledger entry with columns: Ledger ID, Event Type, Original Amount,
|
|
41
|
+
# Original Currency, Reference Object ID, Description, Created At, USD Equivalent
|
|
42
|
+
# Amount, and Payout Currency Amount.
|
|
43
|
+
#
|
|
44
|
+
# @overload download_csv(payout_id, request_options: {})
|
|
45
|
+
#
|
|
46
|
+
# @param payout_id [String] Id of the Payout to get breakup for
|
|
47
|
+
#
|
|
48
|
+
# @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
49
|
+
#
|
|
50
|
+
# @return [nil]
|
|
51
|
+
#
|
|
52
|
+
# @see Dodopayments::Models::Payouts::Breakup::DetailDownloadCsvParams
|
|
53
|
+
def download_csv(payout_id, params = {})
|
|
54
|
+
@client.request(
|
|
55
|
+
method: :get,
|
|
56
|
+
path: ["payouts/%1$s/breakup/details/csv", payout_id],
|
|
57
|
+
model: NilClass,
|
|
58
|
+
options: params[:request_options]
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# @api private
|
|
63
|
+
#
|
|
64
|
+
# @param client [Dodopayments::Client]
|
|
65
|
+
def initialize(client:)
|
|
66
|
+
@client = client
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dodopayments
|
|
4
|
+
module Resources
|
|
5
|
+
class Payouts
|
|
6
|
+
class Breakup
|
|
7
|
+
# @return [Dodopayments::Resources::Payouts::Breakup::Details]
|
|
8
|
+
attr_reader :details
|
|
9
|
+
|
|
10
|
+
# Returns the breakdown of a payout by event type (payments, refunds, disputes,
|
|
11
|
+
# fees, etc.) in the payout's currency. Each amount is proportionally allocated
|
|
12
|
+
# based on USD equivalent values, ensuring the total sums exactly to the payout
|
|
13
|
+
# amount.
|
|
14
|
+
#
|
|
15
|
+
# @overload retrieve(payout_id, request_options: {})
|
|
16
|
+
#
|
|
17
|
+
# @param payout_id [String] Id of the Payout to get breakup for
|
|
18
|
+
#
|
|
19
|
+
# @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
20
|
+
#
|
|
21
|
+
# @return [Array<Dodopayments::Models::Payouts::BreakupRetrieveResponseItem>]
|
|
22
|
+
#
|
|
23
|
+
# @see Dodopayments::Models::Payouts::BreakupRetrieveParams
|
|
24
|
+
def retrieve(payout_id, params = {})
|
|
25
|
+
@client.request(
|
|
26
|
+
method: :get,
|
|
27
|
+
path: ["payouts/%1$s/breakup", payout_id],
|
|
28
|
+
model: Dodopayments::Internal::Type::ArrayOf[Dodopayments::Models::Payouts::BreakupRetrieveResponseItem],
|
|
29
|
+
options: params[:request_options]
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @api private
|
|
34
|
+
#
|
|
35
|
+
# @param client [Dodopayments::Client]
|
|
36
|
+
def initialize(client:)
|
|
37
|
+
@client = client
|
|
38
|
+
@details = Dodopayments::Resources::Payouts::Breakup::Details.new(client: client)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
module Dodopayments
|
|
4
4
|
module Resources
|
|
5
5
|
class Payouts
|
|
6
|
+
# @return [Dodopayments::Resources::Payouts::Breakup]
|
|
7
|
+
attr_reader :breakup
|
|
8
|
+
|
|
6
9
|
# @overload list(created_at_gte: nil, created_at_lte: nil, page_number: nil, page_size: nil, request_options: {})
|
|
7
10
|
#
|
|
8
11
|
# @param created_at_gte [Time] Get payouts created after this time (inclusive)
|
|
@@ -36,6 +39,7 @@ module Dodopayments
|
|
|
36
39
|
# @param client [Dodopayments::Client]
|
|
37
40
|
def initialize(client:)
|
|
38
41
|
@client = client
|
|
42
|
+
@breakup = Dodopayments::Resources::Payouts::Breakup.new(client: client)
|
|
39
43
|
end
|
|
40
44
|
end
|
|
41
45
|
end
|
|
@@ -84,7 +84,7 @@ module Dodopayments
|
|
|
84
84
|
)
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
-
# @overload update(subscription_id, billing: nil, cancel_at_next_billing_date: nil, credit_entitlement_cart: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, status: nil, tax_id: nil, request_options: {})
|
|
87
|
+
# @overload update(subscription_id, billing: nil, cancel_at_next_billing_date: nil, cancel_reason: nil, credit_entitlement_cart: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, status: nil, tax_id: nil, request_options: {})
|
|
88
88
|
#
|
|
89
89
|
# @param subscription_id [String] Subscription Id
|
|
90
90
|
#
|
|
@@ -92,6 +92,8 @@ module Dodopayments
|
|
|
92
92
|
#
|
|
93
93
|
# @param cancel_at_next_billing_date [Boolean, nil] When set, the subscription will remain active until the end of billing period
|
|
94
94
|
#
|
|
95
|
+
# @param cancel_reason [Symbol, Dodopayments::Models::SubscriptionUpdateParams::CancelReason, nil]
|
|
96
|
+
#
|
|
95
97
|
# @param credit_entitlement_cart [Array<Dodopayments::Models::SubscriptionUpdateParams::CreditEntitlementCart>, nil] Update credit entitlement cart settings
|
|
96
98
|
#
|
|
97
99
|
# @param customer_name [String, nil]
|
|
@@ -167,7 +167,7 @@ module Dodopayments
|
|
|
167
167
|
|
|
168
168
|
# @param payload [String] The raw webhook payload as a string
|
|
169
169
|
#
|
|
170
|
-
# @return [Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
|
|
170
|
+
# @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
|
|
171
171
|
def unsafe_unwrap(payload)
|
|
172
172
|
parsed = JSON.parse(payload, symbolize_names: true)
|
|
173
173
|
Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnsafeUnwrapWebhookEvent, parsed)
|
|
@@ -179,7 +179,7 @@ module Dodopayments
|
|
|
179
179
|
#
|
|
180
180
|
# @param key [String, nil] The webhook signing key
|
|
181
181
|
#
|
|
182
|
-
# @return [Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
|
|
182
|
+
# @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
|
|
183
183
|
def unwrap(payload, headers:, key: @client.webhook_key)
|
|
184
184
|
if key.nil?
|
|
185
185
|
raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_key or passed in as an argument")
|
data/lib/dodopayments/version.rb
CHANGED
data/lib/dodopayments.rb
CHANGED
|
@@ -63,6 +63,8 @@ require_relative "dodopayments/models/get_dispute"
|
|
|
63
63
|
require_relative "dodopayments/models/refund"
|
|
64
64
|
require_relative "dodopayments/models/subscription"
|
|
65
65
|
require_relative "dodopayments/models/payment"
|
|
66
|
+
require_relative "dodopayments/models/abandoned_checkout_detected_webhook_event"
|
|
67
|
+
require_relative "dodopayments/models/abandoned_checkout_recovered_webhook_event"
|
|
66
68
|
require_relative "dodopayments/models/add_meter_to_price"
|
|
67
69
|
require_relative "dodopayments/models/addon_cart_response_item"
|
|
68
70
|
require_relative "dodopayments/models/addon_create_params"
|
|
@@ -172,6 +174,8 @@ require_relative "dodopayments/models/dispute_retrieve_params"
|
|
|
172
174
|
require_relative "dodopayments/models/dispute_stage"
|
|
173
175
|
require_relative "dodopayments/models/dispute_status"
|
|
174
176
|
require_relative "dodopayments/models/dispute_won_webhook_event"
|
|
177
|
+
require_relative "dodopayments/models/dunning_recovered_webhook_event"
|
|
178
|
+
require_relative "dodopayments/models/dunning_started_webhook_event"
|
|
175
179
|
require_relative "dodopayments/models/event"
|
|
176
180
|
require_relative "dodopayments/models/event_input"
|
|
177
181
|
require_relative "dodopayments/models/filter_operator"
|
|
@@ -223,6 +227,11 @@ require_relative "dodopayments/models/payment_retrieve_params"
|
|
|
223
227
|
require_relative "dodopayments/models/payment_succeeded_webhook_event"
|
|
224
228
|
require_relative "dodopayments/models/payout_list_params"
|
|
225
229
|
require_relative "dodopayments/models/payout_list_response"
|
|
230
|
+
require_relative "dodopayments/models/payouts/breakup/detail_download_csv_params"
|
|
231
|
+
require_relative "dodopayments/models/payouts/breakup/detail_list_params"
|
|
232
|
+
require_relative "dodopayments/models/payouts/breakup/detail_list_response"
|
|
233
|
+
require_relative "dodopayments/models/payouts/breakup_retrieve_params"
|
|
234
|
+
require_relative "dodopayments/models/payouts/breakup_retrieve_response"
|
|
226
235
|
require_relative "dodopayments/models/price"
|
|
227
236
|
require_relative "dodopayments/models/product"
|
|
228
237
|
require_relative "dodopayments/models/product_archive_params"
|
|
@@ -323,6 +332,8 @@ require_relative "dodopayments/resources/meters"
|
|
|
323
332
|
require_relative "dodopayments/resources/misc"
|
|
324
333
|
require_relative "dodopayments/resources/payments"
|
|
325
334
|
require_relative "dodopayments/resources/payouts"
|
|
335
|
+
require_relative "dodopayments/resources/payouts/breakup"
|
|
336
|
+
require_relative "dodopayments/resources/payouts/breakup/details"
|
|
326
337
|
require_relative "dodopayments/resources/products"
|
|
327
338
|
require_relative "dodopayments/resources/products/images"
|
|
328
339
|
require_relative "dodopayments/resources/products/short_links"
|
|
@@ -148,12 +148,20 @@ module Dodopayments
|
|
|
148
148
|
end
|
|
149
149
|
end
|
|
150
150
|
|
|
151
|
+
# https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
|
|
152
|
+
RFC_3986_NOT_PCHARS = T.let(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/, Regexp)
|
|
153
|
+
|
|
151
154
|
class << self
|
|
152
155
|
# @api private
|
|
153
156
|
sig { params(uri: URI::Generic).returns(String) }
|
|
154
157
|
def uri_origin(uri)
|
|
155
158
|
end
|
|
156
159
|
|
|
160
|
+
# @api private
|
|
161
|
+
sig { params(path: T.any(String, Integer)).returns(String) }
|
|
162
|
+
def encode_path(path)
|
|
163
|
+
end
|
|
164
|
+
|
|
157
165
|
# @api private
|
|
158
166
|
sig { params(path: T.any(String, T::Array[String])).returns(String) }
|
|
159
167
|
def interpolate_path(path)
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Dodopayments
|
|
4
|
+
module Models
|
|
5
|
+
class AbandonedCheckoutDetectedWebhookEvent < Dodopayments::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent,
|
|
10
|
+
Dodopayments::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The business identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :business_id
|
|
17
|
+
|
|
18
|
+
# Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
|
|
19
|
+
# events
|
|
20
|
+
sig { returns(Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data) }
|
|
21
|
+
attr_reader :data
|
|
22
|
+
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data:
|
|
26
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::OrHash
|
|
27
|
+
).void
|
|
28
|
+
end
|
|
29
|
+
attr_writer :data
|
|
30
|
+
|
|
31
|
+
# The timestamp of when the event occurred
|
|
32
|
+
sig { returns(Time) }
|
|
33
|
+
attr_accessor :timestamp
|
|
34
|
+
|
|
35
|
+
# The event type
|
|
36
|
+
sig do
|
|
37
|
+
returns(
|
|
38
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
attr_accessor :type
|
|
42
|
+
|
|
43
|
+
sig do
|
|
44
|
+
params(
|
|
45
|
+
business_id: String,
|
|
46
|
+
data:
|
|
47
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::OrHash,
|
|
48
|
+
timestamp: Time,
|
|
49
|
+
type:
|
|
50
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::OrSymbol
|
|
51
|
+
).returns(T.attached_class)
|
|
52
|
+
end
|
|
53
|
+
def self.new(
|
|
54
|
+
# The business identifier
|
|
55
|
+
business_id:,
|
|
56
|
+
# Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
|
|
57
|
+
# events
|
|
58
|
+
data:,
|
|
59
|
+
# The timestamp of when the event occurred
|
|
60
|
+
timestamp:,
|
|
61
|
+
# The event type
|
|
62
|
+
type:
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
sig do
|
|
67
|
+
override.returns(
|
|
68
|
+
{
|
|
69
|
+
business_id: String,
|
|
70
|
+
data: Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data,
|
|
71
|
+
timestamp: Time,
|
|
72
|
+
type:
|
|
73
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
def to_hash
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
class Data < Dodopayments::Internal::Type::BaseModel
|
|
81
|
+
OrHash =
|
|
82
|
+
T.type_alias do
|
|
83
|
+
T.any(
|
|
84
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data,
|
|
85
|
+
Dodopayments::Internal::AnyHash
|
|
86
|
+
)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
sig { returns(Time) }
|
|
90
|
+
attr_accessor :abandoned_at
|
|
91
|
+
|
|
92
|
+
sig do
|
|
93
|
+
returns(
|
|
94
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
|
|
95
|
+
)
|
|
96
|
+
end
|
|
97
|
+
attr_accessor :abandonment_reason
|
|
98
|
+
|
|
99
|
+
sig { returns(String) }
|
|
100
|
+
attr_accessor :customer_id
|
|
101
|
+
|
|
102
|
+
sig { returns(String) }
|
|
103
|
+
attr_accessor :payment_id
|
|
104
|
+
|
|
105
|
+
sig do
|
|
106
|
+
returns(
|
|
107
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
|
|
108
|
+
)
|
|
109
|
+
end
|
|
110
|
+
attr_accessor :status
|
|
111
|
+
|
|
112
|
+
sig { returns(T.nilable(String)) }
|
|
113
|
+
attr_accessor :recovered_payment_id
|
|
114
|
+
|
|
115
|
+
# Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
|
|
116
|
+
# events
|
|
117
|
+
sig do
|
|
118
|
+
params(
|
|
119
|
+
abandoned_at: Time,
|
|
120
|
+
abandonment_reason:
|
|
121
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::OrSymbol,
|
|
122
|
+
customer_id: String,
|
|
123
|
+
payment_id: String,
|
|
124
|
+
status:
|
|
125
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::OrSymbol,
|
|
126
|
+
recovered_payment_id: T.nilable(String)
|
|
127
|
+
).returns(T.attached_class)
|
|
128
|
+
end
|
|
129
|
+
def self.new(
|
|
130
|
+
abandoned_at:,
|
|
131
|
+
abandonment_reason:,
|
|
132
|
+
customer_id:,
|
|
133
|
+
payment_id:,
|
|
134
|
+
status:,
|
|
135
|
+
recovered_payment_id: nil
|
|
136
|
+
)
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
sig do
|
|
140
|
+
override.returns(
|
|
141
|
+
{
|
|
142
|
+
abandoned_at: Time,
|
|
143
|
+
abandonment_reason:
|
|
144
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol,
|
|
145
|
+
customer_id: String,
|
|
146
|
+
payment_id: String,
|
|
147
|
+
status:
|
|
148
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol,
|
|
149
|
+
recovered_payment_id: T.nilable(String)
|
|
150
|
+
}
|
|
151
|
+
)
|
|
152
|
+
end
|
|
153
|
+
def to_hash
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
module AbandonmentReason
|
|
157
|
+
extend Dodopayments::Internal::Type::Enum
|
|
158
|
+
|
|
159
|
+
TaggedSymbol =
|
|
160
|
+
T.type_alias do
|
|
161
|
+
T.all(
|
|
162
|
+
Symbol,
|
|
163
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason
|
|
164
|
+
)
|
|
165
|
+
end
|
|
166
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
167
|
+
|
|
168
|
+
PAYMENT_FAILED =
|
|
169
|
+
T.let(
|
|
170
|
+
:payment_failed,
|
|
171
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
|
|
172
|
+
)
|
|
173
|
+
CHECKOUT_INCOMPLETE =
|
|
174
|
+
T.let(
|
|
175
|
+
:checkout_incomplete,
|
|
176
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
sig do
|
|
180
|
+
override.returns(
|
|
181
|
+
T::Array[
|
|
182
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
|
|
183
|
+
]
|
|
184
|
+
)
|
|
185
|
+
end
|
|
186
|
+
def self.values
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
module Status
|
|
191
|
+
extend Dodopayments::Internal::Type::Enum
|
|
192
|
+
|
|
193
|
+
TaggedSymbol =
|
|
194
|
+
T.type_alias do
|
|
195
|
+
T.all(
|
|
196
|
+
Symbol,
|
|
197
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status
|
|
198
|
+
)
|
|
199
|
+
end
|
|
200
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
201
|
+
|
|
202
|
+
ABANDONED =
|
|
203
|
+
T.let(
|
|
204
|
+
:abandoned,
|
|
205
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
|
|
206
|
+
)
|
|
207
|
+
RECOVERING =
|
|
208
|
+
T.let(
|
|
209
|
+
:recovering,
|
|
210
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
|
|
211
|
+
)
|
|
212
|
+
RECOVERED =
|
|
213
|
+
T.let(
|
|
214
|
+
:recovered,
|
|
215
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
|
|
216
|
+
)
|
|
217
|
+
EXHAUSTED =
|
|
218
|
+
T.let(
|
|
219
|
+
:exhausted,
|
|
220
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
|
|
221
|
+
)
|
|
222
|
+
OPTED_OUT =
|
|
223
|
+
T.let(
|
|
224
|
+
:opted_out,
|
|
225
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
sig do
|
|
229
|
+
override.returns(
|
|
230
|
+
T::Array[
|
|
231
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
|
|
232
|
+
]
|
|
233
|
+
)
|
|
234
|
+
end
|
|
235
|
+
def self.values
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
# The event type
|
|
241
|
+
module Type
|
|
242
|
+
extend Dodopayments::Internal::Type::Enum
|
|
243
|
+
|
|
244
|
+
TaggedSymbol =
|
|
245
|
+
T.type_alias do
|
|
246
|
+
T.all(
|
|
247
|
+
Symbol,
|
|
248
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type
|
|
249
|
+
)
|
|
250
|
+
end
|
|
251
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
252
|
+
|
|
253
|
+
ABANDONED_CHECKOUT_DETECTED =
|
|
254
|
+
T.let(
|
|
255
|
+
:"abandoned_checkout.detected",
|
|
256
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
|
|
257
|
+
)
|
|
258
|
+
|
|
259
|
+
sig do
|
|
260
|
+
override.returns(
|
|
261
|
+
T::Array[
|
|
262
|
+
Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
|
|
263
|
+
]
|
|
264
|
+
)
|
|
265
|
+
end
|
|
266
|
+
def self.values
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
end
|
|
271
|
+
end
|