dodopayments 1.20.0 → 1.47.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 +45 -0
- data/README.md +144 -60
- data/SECURITY.md +2 -2
- data/lib/dodopayments/client.rb +25 -12
- data/lib/dodopayments/errors.rb +23 -1
- data/lib/dodopayments/file_part.rb +2 -2
- data/lib/dodopayments/internal/cursor_page_pagination.rb +90 -0
- data/lib/dodopayments/internal/default_page_number_pagination.rb +2 -2
- data/lib/dodopayments/internal/transport/base_client.rb +90 -10
- data/lib/dodopayments/internal/transport/pooled_net_requester.rb +17 -1
- data/lib/dodopayments/internal/type/array_of.rb +16 -2
- data/lib/dodopayments/internal/type/base_model.rb +152 -59
- data/lib/dodopayments/internal/type/boolean.rb +15 -1
- data/lib/dodopayments/internal/type/converter.rb +86 -33
- data/lib/dodopayments/internal/type/enum.rb +30 -6
- data/lib/dodopayments/internal/type/file_input.rb +13 -1
- data/lib/dodopayments/internal/type/hash_of.rb +16 -2
- data/lib/dodopayments/internal/type/request_parameters.rb +6 -12
- data/lib/dodopayments/internal/type/union.rb +44 -31
- data/lib/dodopayments/internal/type/unknown.rb +15 -1
- data/lib/dodopayments/internal/util.rb +136 -12
- data/lib/dodopayments/internal.rb +9 -0
- data/lib/dodopayments/models/addon_create_params.rb +6 -10
- data/lib/dodopayments/models/addon_list_params.rb +4 -4
- data/lib/dodopayments/models/addon_response.rb +6 -10
- data/lib/dodopayments/models/addon_update_params.rb +6 -10
- data/lib/dodopayments/models/attach_addon.rb +21 -0
- data/lib/dodopayments/models/billing_address.rb +3 -3
- data/lib/dodopayments/models/brand.rb +107 -0
- data/lib/dodopayments/models/brand_create_params.rb +44 -0
- data/lib/dodopayments/models/{webhook_event_retrieve_params.rb → brand_list_params.rb} +2 -2
- data/lib/dodopayments/models/brand_list_response.rb +17 -0
- data/lib/dodopayments/models/brand_retrieve_params.rb +14 -0
- data/lib/dodopayments/models/brand_update_images_params.rb +14 -0
- data/lib/dodopayments/models/brand_update_images_response.rb +25 -0
- data/lib/dodopayments/models/brand_update_params.rb +43 -0
- data/lib/dodopayments/models/create_new_customer.rb +0 -1
- data/lib/dodopayments/models/customer_list_params.rb +13 -5
- data/lib/dodopayments/models/customer_request.rb +3 -3
- data/lib/dodopayments/models/customers/customer_portal_create_params.rb +2 -2
- data/lib/dodopayments/models/discount.rb +15 -4
- data/lib/dodopayments/models/discount_create_params.rb +17 -6
- data/lib/dodopayments/models/discount_list_params.rb +4 -4
- data/lib/dodopayments/models/discount_update_params.rb +16 -5
- data/lib/dodopayments/models/dispute.rb +15 -7
- data/lib/dodopayments/models/dispute_list_params.rb +44 -16
- data/lib/dodopayments/models/dispute_list_response.rb +77 -0
- data/lib/dodopayments/models/get_dispute.rb +101 -0
- data/lib/dodopayments/models/license_key.rb +3 -3
- data/lib/dodopayments/models/license_key_duration.rb +1 -1
- data/lib/dodopayments/models/license_key_list_params.rb +23 -11
- data/lib/dodopayments/models/license_key_update_params.rb +3 -3
- data/lib/dodopayments/models/misc_list_supported_countries_response.rb +1 -1
- data/lib/dodopayments/models/new_customer.rb +27 -0
- data/lib/dodopayments/models/one_time_product_cart_item.rb +0 -1
- data/lib/dodopayments/models/payment.rb +79 -18
- data/lib/dodopayments/models/payment_create_params.rb +22 -41
- data/lib/dodopayments/models/payment_create_response.rb +16 -6
- data/lib/dodopayments/models/payment_list_params.rb +44 -16
- data/lib/dodopayments/models/payment_list_response.rb +16 -4
- data/lib/dodopayments/models/payment_method_types.rb +31 -0
- data/lib/dodopayments/models/payment_retrieve_line_items_params.rb +14 -0
- data/lib/dodopayments/models/payment_retrieve_line_items_response.rb +63 -0
- data/lib/dodopayments/models/payout_list_params.rb +4 -4
- data/lib/dodopayments/models/payout_list_response.rb +7 -3
- data/lib/dodopayments/models/price.rb +57 -30
- data/lib/dodopayments/models/product.rb +85 -12
- data/lib/dodopayments/models/product_create_params.rb +61 -12
- data/lib/dodopayments/models/product_list_params.rb +15 -7
- data/lib/dodopayments/models/product_list_response.rb +19 -11
- data/lib/dodopayments/models/product_update_files_params.rb +20 -0
- data/lib/dodopayments/models/product_update_files_response.rb +22 -0
- data/lib/dodopayments/models/product_update_params.rb +70 -13
- data/lib/dodopayments/models/products/image_update_params.rb +2 -2
- data/lib/dodopayments/models/refund.rb +15 -5
- data/lib/dodopayments/models/refund_create_params.rb +38 -1
- data/lib/dodopayments/models/refund_list_params.rb +26 -13
- data/lib/dodopayments/models/subscription.rb +38 -18
- data/lib/dodopayments/models/subscription_change_plan_params.rb +19 -3
- data/lib/dodopayments/models/subscription_charge_params.rb +38 -2
- data/lib/dodopayments/models/subscription_create_params.rb +53 -66
- data/lib/dodopayments/models/subscription_create_response.rb +24 -8
- data/lib/dodopayments/models/subscription_list_params.rb +37 -14
- data/lib/dodopayments/models/subscription_list_response.rb +37 -16
- data/lib/dodopayments/models/subscription_status.rb +0 -1
- data/lib/dodopayments/models/subscription_update_params.rb +10 -6
- data/lib/dodopayments/models/webhook_create_params.rb +86 -0
- data/lib/dodopayments/models/webhook_create_response.rb +88 -0
- data/lib/dodopayments/models/webhook_delete_params.rb +14 -0
- data/lib/dodopayments/models/webhook_event_type.rb +35 -0
- data/lib/dodopayments/models/webhook_list_params.rb +30 -0
- data/lib/dodopayments/models/webhook_list_response.rb +88 -0
- data/lib/dodopayments/models/webhook_payload.rb +161 -0
- data/lib/dodopayments/models/webhook_retrieve_params.rb +14 -0
- data/lib/dodopayments/models/webhook_retrieve_response.rb +88 -0
- data/lib/dodopayments/models/webhook_update_params.rb +69 -0
- data/lib/dodopayments/models/webhook_update_response.rb +88 -0
- data/lib/dodopayments/models/webhooks/header_retrieve_params.rb +16 -0
- data/lib/dodopayments/models/webhooks/header_retrieve_response.rb +31 -0
- data/lib/dodopayments/models/webhooks/header_update_params.rb +24 -0
- data/lib/dodopayments/models/your_webhook_url_create_params.rb +32 -0
- data/lib/dodopayments/models.rb +241 -0
- data/lib/dodopayments/request_options.rb +4 -0
- data/lib/dodopayments/resources/addons.rb +13 -21
- data/lib/dodopayments/resources/brands.rb +119 -0
- data/lib/dodopayments/resources/customers/customer_portal.rb +3 -3
- data/lib/dodopayments/resources/customers.rb +12 -10
- data/lib/dodopayments/resources/discounts.rb +24 -19
- data/lib/dodopayments/resources/disputes.rb +12 -12
- data/lib/dodopayments/resources/invoices/payments.rb +3 -2
- data/lib/dodopayments/resources/license_key_instances.rb +5 -5
- data/lib/dodopayments/resources/license_keys.rb +13 -13
- data/lib/dodopayments/resources/licenses.rb +4 -4
- data/lib/dodopayments/resources/misc.rb +1 -1
- data/lib/dodopayments/resources/payments.rb +38 -19
- data/lib/dodopayments/resources/payouts.rb +3 -3
- data/lib/dodopayments/resources/products/images.rb +2 -2
- data/lib/dodopayments/resources/products.rb +58 -24
- data/lib/dodopayments/resources/refunds.rb +14 -12
- data/lib/dodopayments/resources/subscriptions.rb +44 -29
- data/lib/dodopayments/resources/webhook_events.rb +0 -52
- data/lib/dodopayments/resources/webhooks/headers.rb +59 -0
- data/lib/dodopayments/resources/webhooks.rb +157 -0
- data/lib/dodopayments/resources/your_webhook_url.rb +56 -0
- data/lib/dodopayments/version.rb +1 -1
- data/lib/dodopayments.rb +47 -8
- data/rbi/dodopayments/client.rbi +24 -10
- data/rbi/dodopayments/errors.rbi +51 -16
- data/rbi/dodopayments/file_part.rbi +9 -6
- data/rbi/dodopayments/internal/cursor_page_pagination.rbi +25 -0
- data/rbi/dodopayments/internal/default_page_number_pagination.rbi +2 -1
- data/rbi/dodopayments/internal/transport/base_client.rbi +165 -77
- data/rbi/dodopayments/internal/transport/pooled_net_requester.rbi +33 -13
- data/rbi/dodopayments/internal/type/array_of.rbi +40 -24
- data/rbi/dodopayments/internal/type/base_model.rbi +160 -70
- data/rbi/dodopayments/internal/type/base_page.rbi +13 -8
- data/rbi/dodopayments/internal/type/boolean.rbi +24 -14
- data/rbi/dodopayments/internal/type/converter.rbi +135 -33
- data/rbi/dodopayments/internal/type/enum.rbi +29 -13
- data/rbi/dodopayments/internal/type/file_input.rbi +13 -4
- data/rbi/dodopayments/internal/type/hash_of.rbi +40 -24
- data/rbi/dodopayments/internal/type/request_parameters.rbi +14 -4
- data/rbi/dodopayments/internal/type/union.rbi +71 -23
- data/rbi/dodopayments/internal/type/unknown.rbi +24 -6
- data/rbi/dodopayments/internal/util.rbi +274 -89
- data/rbi/dodopayments/internal.rbi +7 -0
- data/rbi/dodopayments/models/addon_cart_response_item.rbi +16 -4
- data/rbi/dodopayments/models/addon_create_params.rbi +33 -24
- data/rbi/dodopayments/models/addon_list_params.rbi +29 -17
- data/rbi/dodopayments/models/addon_response.rbi +33 -27
- data/rbi/dodopayments/models/addon_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/addon_update_images_params.rbi +18 -5
- data/rbi/dodopayments/models/addon_update_images_response.rbi +13 -3
- data/rbi/dodopayments/models/addon_update_params.rbi +34 -25
- data/rbi/dodopayments/models/attach_addon.rbi +28 -0
- data/rbi/dodopayments/models/attach_existing_customer.rbi +13 -3
- data/rbi/dodopayments/models/billing_address.rbi +24 -12
- data/rbi/dodopayments/models/brand.rbi +132 -0
- data/rbi/dodopayments/models/brand_create_params.rbi +68 -0
- data/rbi/dodopayments/models/brand_list_params.rbi +29 -0
- data/rbi/dodopayments/models/brand_list_response.rbi +34 -0
- data/rbi/dodopayments/models/brand_retrieve_params.rbi +32 -0
- data/rbi/dodopayments/models/brand_update_images_params.rbi +32 -0
- data/rbi/dodopayments/models/brand_update_images_response.rbi +36 -0
- data/rbi/dodopayments/models/brand_update_params.rbi +64 -0
- data/rbi/dodopayments/models/country_code.rbi +255 -252
- data/rbi/dodopayments/models/create_new_customer.rbi +27 -11
- data/rbi/dodopayments/models/currency.rbi +149 -148
- data/rbi/dodopayments/models/customer.rbi +27 -15
- data/rbi/dodopayments/models/customer_create_params.rbi +22 -14
- data/rbi/dodopayments/models/customer_limited_details.rbi +21 -4
- data/rbi/dodopayments/models/customer_list_params.rbi +43 -17
- data/rbi/dodopayments/models/customer_portal_session.rbi +13 -3
- data/rbi/dodopayments/models/customer_request.rbi +10 -2
- data/rbi/dodopayments/models/customer_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/customer_update_params.rbi +21 -13
- data/rbi/dodopayments/models/customers/customer_portal_create_params.rbi +26 -8
- data/rbi/dodopayments/models/discount.rbi +42 -22
- data/rbi/dodopayments/models/discount_create_params.rbi +43 -20
- data/rbi/dodopayments/models/discount_delete_params.rbi +18 -5
- data/rbi/dodopayments/models/discount_list_params.rbi +32 -17
- data/rbi/dodopayments/models/discount_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/discount_type.rbi +7 -4
- data/rbi/dodopayments/models/discount_update_params.rbi +43 -20
- data/rbi/dodopayments/models/dispute.rbi +41 -23
- data/rbi/dodopayments/models/dispute_list_params.rbi +178 -33
- data/rbi/dodopayments/models/dispute_list_response.rbi +98 -0
- data/rbi/dodopayments/models/dispute_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/dispute_stage.rbi +11 -6
- data/rbi/dodopayments/models/dispute_status.rbi +20 -10
- data/rbi/dodopayments/models/get_dispute.rbi +124 -0
- data/rbi/dodopayments/models/intent_status.rbi +32 -14
- data/rbi/dodopayments/models/invoices/payment_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/license_activate_params.rbi +21 -6
- data/rbi/dodopayments/models/license_deactivate_params.rbi +21 -13
- data/rbi/dodopayments/models/license_key.rbi +31 -23
- data/rbi/dodopayments/models/license_key_duration.rbi +24 -5
- data/rbi/dodopayments/models/license_key_instance.rbi +19 -4
- data/rbi/dodopayments/models/license_key_instance_list_params.rbi +23 -14
- data/rbi/dodopayments/models/license_key_instance_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/license_key_instance_update_params.rbi +19 -6
- data/rbi/dodopayments/models/license_key_list_params.rbi +91 -26
- data/rbi/dodopayments/models/license_key_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/license_key_status.rbi +10 -6
- data/rbi/dodopayments/models/license_key_update_params.rbi +23 -14
- data/rbi/dodopayments/models/license_validate_params.rbi +25 -13
- data/rbi/dodopayments/models/license_validate_response.rbi +13 -3
- data/rbi/dodopayments/models/misc_list_supported_countries_params.rbi +18 -5
- data/rbi/dodopayments/models/misc_list_supported_countries_response.rbi +1 -1
- data/rbi/dodopayments/models/new_customer.rbi +39 -0
- data/rbi/dodopayments/models/one_time_product_cart_item.rbi +23 -4
- data/rbi/dodopayments/models/payment.rbi +149 -54
- data/rbi/dodopayments/models/payment_create_params.rbi +67 -87
- data/rbi/dodopayments/models/payment_create_response.rbi +45 -22
- data/rbi/dodopayments/models/payment_list_params.rbi +149 -32
- data/rbi/dodopayments/models/payment_list_response.rbi +47 -26
- data/rbi/dodopayments/models/payment_method_types.rbi +52 -0
- data/rbi/dodopayments/models/payment_retrieve_line_items_params.rbi +32 -0
- data/rbi/dodopayments/models/payment_retrieve_line_items_response.rbi +114 -0
- data/rbi/dodopayments/models/payment_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/payout_list_params.rbi +29 -17
- data/rbi/dodopayments/models/payout_list_response.rbi +82 -35
- data/rbi/dodopayments/models/price.rbi +142 -55
- data/rbi/dodopayments/models/product.rbi +177 -38
- data/rbi/dodopayments/models/product_create_params.rbi +151 -36
- data/rbi/dodopayments/models/product_delete_params.rbi +18 -5
- data/rbi/dodopayments/models/product_list_params.rbi +50 -21
- data/rbi/dodopayments/models/product_list_response.rbi +57 -42
- data/rbi/dodopayments/models/product_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/product_unarchive_params.rbi +18 -5
- data/rbi/dodopayments/models/product_update_files_params.rbi +38 -0
- data/rbi/dodopayments/models/product_update_files_response.rbi +29 -0
- data/rbi/dodopayments/models/product_update_params.rbi +160 -37
- data/rbi/dodopayments/models/products/image_update_params.rbi +20 -8
- data/rbi/dodopayments/models/products/image_update_response.rbi +18 -4
- data/rbi/dodopayments/models/refund.rbi +39 -21
- data/rbi/dodopayments/models/refund_create_params.rbi +87 -11
- data/rbi/dodopayments/models/refund_list_params.rbi +86 -29
- data/rbi/dodopayments/models/refund_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/refund_status.rbi +10 -7
- data/rbi/dodopayments/models/subscription.rbi +83 -47
- data/rbi/dodopayments/models/subscription_change_plan_params.rbi +68 -21
- data/rbi/dodopayments/models/subscription_charge_params.rbi +65 -6
- data/rbi/dodopayments/models/subscription_charge_response.rbi +13 -3
- data/rbi/dodopayments/models/subscription_create_params.rbi +136 -128
- data/rbi/dodopayments/models/subscription_create_response.rbi +51 -22
- data/rbi/dodopayments/models/subscription_list_params.rbi +125 -29
- data/rbi/dodopayments/models/subscription_list_response.rbi +85 -44
- data/rbi/dodopayments/models/subscription_retrieve_params.rbi +18 -5
- data/rbi/dodopayments/models/subscription_status.rbi +16 -10
- data/rbi/dodopayments/models/subscription_update_params.rbi +63 -33
- data/rbi/dodopayments/models/tax_category.rbi +11 -7
- data/rbi/dodopayments/models/time_interval.rbi +10 -7
- data/rbi/dodopayments/models/webhook_create_params.rbi +115 -0
- data/rbi/dodopayments/models/webhook_create_response.rbi +112 -0
- data/rbi/dodopayments/models/webhook_delete_params.rbi +32 -0
- data/rbi/dodopayments/models/webhook_event_type.rbi +102 -0
- data/rbi/dodopayments/models/webhook_list_params.rbi +54 -0
- data/rbi/dodopayments/models/webhook_list_response.rbi +112 -0
- data/rbi/dodopayments/models/webhook_payload.rbi +440 -0
- data/rbi/dodopayments/models/webhook_retrieve_params.rbi +32 -0
- data/rbi/dodopayments/models/webhook_retrieve_response.rbi +112 -0
- data/rbi/dodopayments/models/webhook_update_params.rbi +94 -0
- data/rbi/dodopayments/models/webhook_update_response.rbi +112 -0
- data/rbi/dodopayments/models/webhooks/header_retrieve_params.rbi +34 -0
- data/rbi/dodopayments/models/webhooks/header_retrieve_response.rbi +50 -0
- data/rbi/dodopayments/models/webhooks/header_update_params.rbi +48 -0
- data/rbi/dodopayments/models/your_webhook_url_create_params.rbi +56 -0
- data/rbi/dodopayments/models.rbi +209 -0
- data/rbi/dodopayments/request_options.rbi +18 -7
- data/rbi/dodopayments/resources/addons.rbi +44 -27
- data/rbi/dodopayments/resources/brands.rbi +89 -0
- data/rbi/dodopayments/resources/customers/customer_portal.rbi +8 -6
- data/rbi/dodopayments/resources/customers.rbi +31 -17
- data/rbi/dodopayments/resources/discounts.rbi +54 -22
- data/rbi/dodopayments/resources/disputes.rbi +26 -14
- data/rbi/dodopayments/resources/invoices/payments.rbi +10 -3
- data/rbi/dodopayments/resources/invoices.rbi +2 -1
- data/rbi/dodopayments/resources/license_key_instances.rbi +25 -10
- data/rbi/dodopayments/resources/license_keys.rbi +29 -15
- data/rbi/dodopayments/resources/licenses.rbi +25 -12
- data/rbi/dodopayments/resources/misc.rbi +7 -4
- data/rbi/dodopayments/resources/payments.rbi +61 -27
- data/rbi/dodopayments/resources/payouts.rbi +12 -6
- data/rbi/dodopayments/resources/products/images.rbi +10 -4
- data/rbi/dodopayments/resources/products.rbi +118 -41
- data/rbi/dodopayments/resources/refunds.rbi +35 -15
- data/rbi/dodopayments/resources/subscriptions.rbi +98 -50
- data/rbi/dodopayments/resources/webhook_events.rbi +2 -34
- data/rbi/dodopayments/resources/webhooks/headers.rbi +40 -0
- data/rbi/dodopayments/resources/webhooks.rbi +127 -0
- data/rbi/dodopayments/resources/your_webhook_url.rbi +51 -0
- data/sig/dodopayments/client.rbs +8 -2
- data/sig/dodopayments/errors.rbs +9 -0
- data/sig/dodopayments/internal/cursor_page_pagination.rbs +15 -0
- data/sig/dodopayments/internal/transport/base_client.rbs +17 -2
- data/sig/dodopayments/internal/transport/pooled_net_requester.rbs +4 -0
- data/sig/dodopayments/internal/type/array_of.rbs +3 -0
- data/sig/dodopayments/internal/type/base_model.rbs +13 -5
- data/sig/dodopayments/internal/type/base_page.rbs +1 -1
- data/sig/dodopayments/internal/type/boolean.rbs +3 -0
- data/sig/dodopayments/internal/type/converter.rbs +26 -1
- data/sig/dodopayments/internal/type/enum.rbs +3 -0
- data/sig/dodopayments/internal/type/file_input.rbs +2 -0
- data/sig/dodopayments/internal/type/hash_of.rbs +3 -0
- data/sig/dodopayments/internal/type/request_parameters.rbs +5 -1
- data/sig/dodopayments/internal/type/union.rbs +5 -2
- data/sig/dodopayments/internal/type/unknown.rbs +3 -0
- data/sig/dodopayments/internal/util.rbs +27 -0
- data/sig/dodopayments/internal.rbs +4 -0
- data/sig/dodopayments/models/addon_cart_response_item.rbs +1 -1
- data/sig/dodopayments/models/addon_create_params.rbs +8 -1
- data/sig/dodopayments/models/addon_list_params.rbs +14 -6
- data/sig/dodopayments/models/addon_response.rbs +12 -1
- data/sig/dodopayments/models/addon_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/addon_update_images_params.rbs +1 -1
- data/sig/dodopayments/models/addon_update_images_response.rbs +1 -1
- data/sig/dodopayments/models/addon_update_params.rbs +9 -1
- data/sig/dodopayments/models/attach_addon.rbs +15 -0
- data/sig/dodopayments/models/attach_existing_customer.rbs +1 -1
- data/sig/dodopayments/models/billing_address.rbs +7 -1
- data/sig/dodopayments/models/brand.rbs +88 -0
- data/sig/dodopayments/models/brand_create_params.rbs +46 -0
- data/sig/dodopayments/models/{webhook_event_retrieve_params.rbs → brand_list_params.rbs} +3 -3
- data/sig/dodopayments/models/brand_list_response.rbs +13 -0
- data/sig/dodopayments/models/brand_retrieve_params.rbs +15 -0
- data/sig/dodopayments/models/brand_update_images_params.rbs +15 -0
- data/sig/dodopayments/models/brand_update_images_response.rbs +15 -0
- data/sig/dodopayments/models/brand_update_params.rbs +41 -0
- data/sig/dodopayments/models/create_new_customer.rbs +6 -1
- data/sig/dodopayments/models/customer.rbs +8 -1
- data/sig/dodopayments/models/customer_create_params.rbs +6 -1
- data/sig/dodopayments/models/customer_limited_details.rbs +1 -1
- data/sig/dodopayments/models/customer_list_params.rbs +20 -6
- data/sig/dodopayments/models/customer_portal_session.rbs +1 -1
- data/sig/dodopayments/models/customer_request.rbs +2 -3
- data/sig/dodopayments/models/customer_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/customer_update_params.rbs +5 -1
- data/sig/dodopayments/models/customers/customer_portal_create_params.rbs +9 -4
- data/sig/dodopayments/models/discount.rbs +18 -1
- data/sig/dodopayments/models/discount_create_params.rbs +15 -1
- data/sig/dodopayments/models/discount_delete_params.rbs +1 -1
- data/sig/dodopayments/models/discount_list_params.rbs +14 -6
- data/sig/dodopayments/models/discount_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/discount_update_params.rbs +15 -1
- data/sig/dodopayments/models/dispute.rbs +17 -3
- data/sig/dodopayments/models/dispute_list_params.rbs +84 -22
- data/sig/dodopayments/models/dispute_list_response.rbs +55 -0
- data/sig/dodopayments/models/dispute_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/get_dispute.rbs +70 -0
- data/sig/dodopayments/models/invoices/payment_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/license_activate_params.rbs +5 -1
- data/sig/dodopayments/models/license_deactivate_params.rbs +5 -1
- data/sig/dodopayments/models/license_key.rbs +14 -1
- data/sig/dodopayments/models/license_key_duration.rbs +4 -1
- data/sig/dodopayments/models/license_key_instance.rbs +7 -1
- data/sig/dodopayments/models/license_key_instance_list_params.rbs +6 -1
- data/sig/dodopayments/models/license_key_instance_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/license_key_instance_update_params.rbs +4 -1
- data/sig/dodopayments/models/license_key_list_params.rbs +47 -16
- data/sig/dodopayments/models/license_key_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/license_key_update_params.rbs +6 -1
- data/sig/dodopayments/models/license_validate_params.rbs +5 -1
- data/sig/dodopayments/models/license_validate_response.rbs +1 -1
- data/sig/dodopayments/models/misc_list_supported_countries_params.rbs +1 -1
- data/sig/dodopayments/models/new_customer.rbs +21 -0
- data/sig/dodopayments/models/one_time_product_cart_item.rbs +5 -1
- data/sig/dodopayments/models/payment.rbs +76 -17
- data/sig/dodopayments/models/payment_create_params.rbs +23 -55
- data/sig/dodopayments/models/payment_create_response.rbs +21 -7
- data/sig/dodopayments/models/payment_list_params.rbs +85 -22
- data/sig/dodopayments/models/payment_list_response.rbs +25 -4
- data/sig/dodopayments/models/payment_method_types.rbs +48 -0
- data/sig/dodopayments/models/payment_retrieve_line_items_params.rbs +15 -0
- data/sig/dodopayments/models/payment_retrieve_line_items_response.rbs +67 -0
- data/sig/dodopayments/models/payment_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/payout_list_params.rbs +14 -6
- data/sig/dodopayments/models/payout_list_response.rbs +17 -1
- data/sig/dodopayments/models/price.rbs +53 -13
- data/sig/dodopayments/models/product.rbs +80 -4
- data/sig/dodopayments/models/product_create_params.rbs +45 -4
- data/sig/dodopayments/models/product_delete_params.rbs +1 -1
- data/sig/dodopayments/models/product_list_params.rbs +29 -10
- data/sig/dodopayments/models/product_list_response.rbs +20 -1
- data/sig/dodopayments/models/product_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/product_unarchive_params.rbs +1 -1
- data/sig/dodopayments/models/product_update_files_params.rbs +23 -0
- data/sig/dodopayments/models/product_update_files_response.rbs +15 -0
- data/sig/dodopayments/models/product_update_params.rbs +58 -4
- data/sig/dodopayments/models/products/image_update_params.rbs +9 -4
- data/sig/dodopayments/models/products/image_update_response.rbs +1 -1
- data/sig/dodopayments/models/refund.rbs +15 -1
- data/sig/dodopayments/models/refund_create_params.rbs +38 -2
- data/sig/dodopayments/models/refund_list_params.rbs +54 -19
- data/sig/dodopayments/models/refund_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/subscription.rbs +43 -10
- data/sig/dodopayments/models/subscription_change_plan_params.rbs +16 -3
- data/sig/dodopayments/models/subscription_charge_params.rbs +27 -2
- data/sig/dodopayments/models/subscription_charge_response.rbs +1 -1
- data/sig/dodopayments/models/subscription_create_params.rbs +58 -73
- data/sig/dodopayments/models/subscription_create_response.rbs +26 -7
- data/sig/dodopayments/models/subscription_list_params.rbs +64 -19
- data/sig/dodopayments/models/subscription_list_response.rbs +39 -7
- data/sig/dodopayments/models/subscription_retrieve_params.rbs +1 -1
- data/sig/dodopayments/models/subscription_status.rbs +1 -2
- data/sig/dodopayments/models/subscription_update_params.rbs +20 -8
- data/sig/dodopayments/models/webhook_create_params.rbs +65 -0
- data/sig/dodopayments/models/webhook_create_response.rbs +60 -0
- data/sig/dodopayments/models/webhook_delete_params.rbs +15 -0
- data/sig/dodopayments/models/webhook_event_type.rbs +54 -0
- data/sig/dodopayments/models/webhook_list_params.rbs +28 -0
- data/sig/dodopayments/models/webhook_list_response.rbs +60 -0
- data/sig/dodopayments/models/webhook_payload.rbs +203 -0
- data/sig/dodopayments/models/webhook_retrieve_params.rbs +15 -0
- data/sig/dodopayments/models/webhook_retrieve_response.rbs +60 -0
- data/sig/dodopayments/models/webhook_update_params.rbs +51 -0
- data/sig/dodopayments/models/webhook_update_response.rbs +60 -0
- data/sig/dodopayments/models/webhooks/header_retrieve_params.rbs +17 -0
- data/sig/dodopayments/models/webhooks/header_retrieve_response.rbs +24 -0
- data/sig/dodopayments/models/webhooks/header_update_params.rbs +26 -0
- data/sig/dodopayments/models/your_webhook_url_create_params.rbs +42 -0
- data/sig/dodopayments/models.rbs +201 -0
- data/sig/dodopayments/request_options.rbs +1 -1
- data/sig/dodopayments/resources/addons.rbs +6 -6
- data/sig/dodopayments/resources/brands.rbs +39 -0
- data/sig/dodopayments/resources/customers/customer_portal.rbs +2 -2
- data/sig/dodopayments/resources/customers.rbs +7 -6
- data/sig/dodopayments/resources/discounts.rbs +8 -6
- data/sig/dodopayments/resources/disputes.rbs +9 -9
- data/sig/dodopayments/resources/invoices/payments.rbs +1 -1
- data/sig/dodopayments/resources/license_key_instances.rbs +3 -3
- data/sig/dodopayments/resources/license_keys.rbs +8 -8
- data/sig/dodopayments/resources/licenses.rbs +1 -1
- data/sig/dodopayments/resources/payments.rbs +17 -11
- data/sig/dodopayments/resources/payouts.rbs +2 -2
- data/sig/dodopayments/resources/products/images.rbs +1 -1
- data/sig/dodopayments/resources/products.rbs +20 -7
- data/sig/dodopayments/resources/refunds.rbs +10 -9
- data/sig/dodopayments/resources/subscriptions.rbs +21 -14
- data/sig/dodopayments/resources/webhook_events.rbs +0 -15
- data/sig/dodopayments/resources/webhooks/headers.rbs +20 -0
- data/sig/dodopayments/resources/webhooks.rbs +48 -0
- data/sig/dodopayments/resources/your_webhook_url.rbs +18 -0
- metadata +116 -11
- data/lib/dodopayments/models/webhook_event.rb +0 -58
- data/lib/dodopayments/models/webhook_event_list_params.rb +0 -66
- data/rbi/dodopayments/models/webhook_event.rbi +0 -71
- data/rbi/dodopayments/models/webhook_event_list_params.rbi +0 -77
- data/rbi/dodopayments/models/webhook_event_retrieve_params.rbi +0 -19
- data/sig/dodopayments/models/webhook_event.rbs +0 -46
- data/sig/dodopayments/models/webhook_event_list_params.rbs +0 -43
@@ -5,6 +5,8 @@ module Dodopayments
|
|
5
5
|
module Type
|
6
6
|
# @api private
|
7
7
|
module Converter
|
8
|
+
extend Dodopayments::Internal::Util::SorbetRuntimeSupport
|
9
|
+
|
8
10
|
# rubocop:disable Lint/UnusedMethodArgument
|
9
11
|
|
10
12
|
# @api private
|
@@ -13,10 +15,14 @@ module Dodopayments
|
|
13
15
|
#
|
14
16
|
# @param state [Hash{Symbol=>Object}] .
|
15
17
|
#
|
16
|
-
# @option state [Boolean
|
18
|
+
# @option state [Boolean] :translate_names
|
19
|
+
#
|
20
|
+
# @option state [Boolean] :strictness
|
17
21
|
#
|
18
22
|
# @option state [Hash{Symbol=>Object}] :exactness
|
19
23
|
#
|
24
|
+
# @option state [Class<StandardError>] :error
|
25
|
+
#
|
20
26
|
# @option state [Integer] :branched
|
21
27
|
#
|
22
28
|
# @return [Object]
|
@@ -92,6 +98,48 @@ module Dodopayments
|
|
92
98
|
end
|
93
99
|
end
|
94
100
|
|
101
|
+
# @api private
|
102
|
+
#
|
103
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, Dodopayments::Internal::Type::Converter, Class] .
|
104
|
+
#
|
105
|
+
# @option type_info [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
106
|
+
#
|
107
|
+
# @option type_info [Proc] :enum
|
108
|
+
#
|
109
|
+
# @option type_info [Proc] :union
|
110
|
+
#
|
111
|
+
# @option type_info [Boolean] :"nil?"
|
112
|
+
#
|
113
|
+
# @param spec [Hash{Symbol=>Object}, Proc, Dodopayments::Internal::Type::Converter, Class] .
|
114
|
+
#
|
115
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
116
|
+
#
|
117
|
+
# @option spec [Proc] :enum
|
118
|
+
#
|
119
|
+
# @option spec [Proc] :union
|
120
|
+
#
|
121
|
+
# @option spec [Boolean] :"nil?"
|
122
|
+
#
|
123
|
+
# @return [Hash{Symbol=>Object}]
|
124
|
+
def meta_info(type_info, spec)
|
125
|
+
[spec, type_info].grep(Hash).first.to_h.except(:const, :enum, :union, :nil?)
|
126
|
+
end
|
127
|
+
|
128
|
+
# @api private
|
129
|
+
#
|
130
|
+
# @param translate_names [Boolean]
|
131
|
+
#
|
132
|
+
# @return [Hash{Symbol=>Object}]
|
133
|
+
def new_coerce_state(translate_names: true)
|
134
|
+
{
|
135
|
+
translate_names: translate_names,
|
136
|
+
strictness: true,
|
137
|
+
exactness: {yes: 0, no: 0, maybe: 0},
|
138
|
+
error: nil,
|
139
|
+
branched: 0
|
140
|
+
}
|
141
|
+
end
|
142
|
+
|
95
143
|
# @api private
|
96
144
|
#
|
97
145
|
# Based on `target`, transform `value` into `target`, to the extent possible:
|
@@ -108,14 +156,11 @@ module Dodopayments
|
|
108
156
|
#
|
109
157
|
# @param value [Object]
|
110
158
|
#
|
111
|
-
# @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false
|
112
|
-
#
|
113
|
-
# targets:
|
159
|
+
# @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false`. This informs the coercion strategy
|
160
|
+
# when we have to decide between multiple possible conversion targets:
|
114
161
|
#
|
115
162
|
# - `true`: the conversion must be exact, with minimum coercion.
|
116
163
|
# - `false`: the conversion can be approximate, with some coercion.
|
117
|
-
# - `:strong`: the conversion must be exact, with no coercion, and raise an error
|
118
|
-
# if not possible.
|
119
164
|
#
|
120
165
|
# The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
|
121
166
|
# any given conversion attempt, the exactness will be updated based on how closely
|
@@ -128,21 +173,20 @@ module Dodopayments
|
|
128
173
|
#
|
129
174
|
# See implementation below for more details.
|
130
175
|
#
|
131
|
-
# @option state [Boolean
|
176
|
+
# @option state [Boolean] :translate_names
|
177
|
+
#
|
178
|
+
# @option state [Boolean] :strictness
|
132
179
|
#
|
133
180
|
# @option state [Hash{Symbol=>Object}] :exactness
|
134
181
|
#
|
182
|
+
# @option state [Class<StandardError>] :error
|
183
|
+
#
|
135
184
|
# @option state [Integer] :branched
|
136
185
|
#
|
137
186
|
# @return [Object]
|
138
|
-
def coerce(
|
139
|
-
target,
|
140
|
-
value,
|
141
|
-
state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0}
|
142
|
-
)
|
143
|
-
# rubocop:disable Lint/SuppressedException
|
187
|
+
def coerce(target, value, state: Dodopayments::Internal::Type::Converter.new_coerce_state)
|
144
188
|
# rubocop:disable Metrics/BlockNesting
|
145
|
-
|
189
|
+
exactness = state.fetch(:exactness)
|
146
190
|
|
147
191
|
case target
|
148
192
|
in Dodopayments::Internal::Type::Converter
|
@@ -158,29 +202,26 @@ module Dodopayments
|
|
158
202
|
exactness[value.nil? ? :yes : :maybe] += 1
|
159
203
|
return nil
|
160
204
|
in -> { _1 <= Integer }
|
161
|
-
|
205
|
+
case value
|
206
|
+
in Integer
|
162
207
|
exactness[:yes] += 1
|
163
208
|
return value
|
164
|
-
elsif strictness == :strong && Integer(value, exception: false) != value
|
165
|
-
message = "no implicit conversion of #{value.class} into #{target.inspect}"
|
166
|
-
raise value.is_a?(Numeric) ? ArgumentError.new(message) : TypeError.new(message)
|
167
209
|
else
|
168
210
|
Kernel.then do
|
169
211
|
return Integer(value).tap { exactness[:maybe] += 1 }
|
170
|
-
rescue ArgumentError, TypeError
|
212
|
+
rescue ArgumentError, TypeError => e
|
213
|
+
state[:error] = e
|
171
214
|
end
|
172
215
|
end
|
173
216
|
in -> { _1 <= Float }
|
174
217
|
if value.is_a?(Numeric)
|
175
218
|
exactness[:yes] += 1
|
176
219
|
return Float(value)
|
177
|
-
elsif strictness == :strong
|
178
|
-
message = "no implicit conversion of #{value.class} into #{target.inspect}"
|
179
|
-
raise TypeError.new(message)
|
180
220
|
else
|
181
221
|
Kernel.then do
|
182
222
|
return Float(value).tap { exactness[:maybe] += 1 }
|
183
|
-
rescue ArgumentError, TypeError
|
223
|
+
rescue ArgumentError, TypeError => e
|
224
|
+
state[:error] = e
|
184
225
|
end
|
185
226
|
end
|
186
227
|
in -> { _1 <= String }
|
@@ -192,16 +233,13 @@ module Dodopayments
|
|
192
233
|
exactness[:yes] += 1
|
193
234
|
return value.string
|
194
235
|
else
|
195
|
-
|
196
|
-
message = "no implicit conversion of #{value.class} into #{target.inspect}"
|
197
|
-
raise TypeError.new(message)
|
198
|
-
end
|
236
|
+
state[:error] = TypeError.new("#{value.class} can't be coerced into #{String}")
|
199
237
|
end
|
200
238
|
in -> { _1 <= Date || _1 <= Time }
|
201
239
|
Kernel.then do
|
202
240
|
return target.parse(value).tap { exactness[:yes] += 1 }
|
203
241
|
rescue ArgumentError, TypeError => e
|
204
|
-
|
242
|
+
state[:error] = e
|
205
243
|
end
|
206
244
|
in -> { _1 <= StringIO } if value.is_a?(String)
|
207
245
|
exactness[:yes] += 1
|
@@ -219,10 +257,8 @@ module Dodopayments
|
|
219
257
|
return value
|
220
258
|
end
|
221
259
|
else
|
222
|
-
|
223
|
-
|
224
|
-
raise ArgumentError.new(message)
|
225
|
-
end
|
260
|
+
message = "cannot convert non-matching #{value.class} into #{target.inspect}"
|
261
|
+
state[:error] = ArgumentError.new(message)
|
226
262
|
end
|
227
263
|
else
|
228
264
|
end
|
@@ -230,7 +266,6 @@ module Dodopayments
|
|
230
266
|
exactness[:no] += 1
|
231
267
|
value
|
232
268
|
# rubocop:enable Metrics/BlockNesting
|
233
|
-
# rubocop:enable Lint/SuppressedException
|
234
269
|
end
|
235
270
|
|
236
271
|
# @api private
|
@@ -268,6 +303,24 @@ module Dodopayments
|
|
268
303
|
end
|
269
304
|
end
|
270
305
|
end
|
306
|
+
|
307
|
+
define_sorbet_constant!(:Input) do
|
308
|
+
T.type_alias { T.any(Dodopayments::Internal::Type::Converter, T::Class[T.anything]) }
|
309
|
+
end
|
310
|
+
define_sorbet_constant!(:CoerceState) do
|
311
|
+
T.type_alias do
|
312
|
+
{
|
313
|
+
translate_names: T::Boolean,
|
314
|
+
strictness: T::Boolean,
|
315
|
+
exactness: {yes: Integer, no: Integer, maybe: Integer},
|
316
|
+
error: T::Class[StandardError],
|
317
|
+
branched: Integer
|
318
|
+
}
|
319
|
+
end
|
320
|
+
end
|
321
|
+
define_sorbet_constant!(:DumpState) do
|
322
|
+
T.type_alias { {can_retry: T::Boolean} }
|
323
|
+
end
|
271
324
|
end
|
272
325
|
end
|
273
326
|
end
|
@@ -17,13 +17,13 @@ module Dodopayments
|
|
17
17
|
# values safely.
|
18
18
|
#
|
19
19
|
# @example
|
20
|
-
# # `intent_status` is a `Dodopayments::
|
20
|
+
# # `intent_status` is a `Dodopayments::IntentStatus`
|
21
21
|
# case intent_status
|
22
|
-
# when Dodopayments::
|
22
|
+
# when Dodopayments::IntentStatus::SUCCEEDED
|
23
23
|
# # ...
|
24
|
-
# when Dodopayments::
|
24
|
+
# when Dodopayments::IntentStatus::FAILED
|
25
25
|
# # ...
|
26
|
-
# when Dodopayments::
|
26
|
+
# when Dodopayments::IntentStatus::CANCELLED
|
27
27
|
# # ...
|
28
28
|
# else
|
29
29
|
# puts(intent_status)
|
@@ -42,6 +42,7 @@ module Dodopayments
|
|
42
42
|
# end
|
43
43
|
module Enum
|
44
44
|
include Dodopayments::Internal::Type::Converter
|
45
|
+
include Dodopayments::Internal::Util::SorbetRuntimeSupport
|
45
46
|
|
46
47
|
# All of the valid Symbol values for this enum.
|
47
48
|
#
|
@@ -80,10 +81,14 @@ module Dodopayments
|
|
80
81
|
#
|
81
82
|
# @param state [Hash{Symbol=>Object}] .
|
82
83
|
#
|
83
|
-
# @option state [Boolean
|
84
|
+
# @option state [Boolean] :translate_names
|
85
|
+
#
|
86
|
+
# @option state [Boolean] :strictness
|
84
87
|
#
|
85
88
|
# @option state [Hash{Symbol=>Object}] :exactness
|
86
89
|
#
|
90
|
+
# @option state [Class<StandardError>] :error
|
91
|
+
#
|
87
92
|
# @option state [Integer] :branched
|
88
93
|
#
|
89
94
|
# @return [Symbol, Object]
|
@@ -94,8 +99,12 @@ module Dodopayments
|
|
94
99
|
if values.include?(val)
|
95
100
|
exactness[:yes] += 1
|
96
101
|
val
|
102
|
+
elsif values.first&.class == val.class
|
103
|
+
exactness[:maybe] += 1
|
104
|
+
value
|
97
105
|
else
|
98
|
-
exactness[
|
106
|
+
exactness[:no] += 1
|
107
|
+
state[:error] = TypeError.new("#{value.class} can't be coerced into #{self}")
|
99
108
|
value
|
100
109
|
end
|
101
110
|
end
|
@@ -111,6 +120,21 @@ module Dodopayments
|
|
111
120
|
#
|
112
121
|
# @return [Symbol, Object]
|
113
122
|
|
123
|
+
# @api private
|
124
|
+
#
|
125
|
+
# @return [Object]
|
126
|
+
def to_sorbet_type
|
127
|
+
types = values.map { Dodopayments::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(_1) }.uniq
|
128
|
+
case types
|
129
|
+
in []
|
130
|
+
T.noreturn
|
131
|
+
in [type]
|
132
|
+
type
|
133
|
+
else
|
134
|
+
T.any(*types)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
114
138
|
# @api private
|
115
139
|
#
|
116
140
|
# @param depth [Integer]
|
@@ -45,10 +45,14 @@ module Dodopayments
|
|
45
45
|
#
|
46
46
|
# @param state [Hash{Symbol=>Object}] .
|
47
47
|
#
|
48
|
-
# @option state [Boolean
|
48
|
+
# @option state [Boolean] :translate_names
|
49
|
+
#
|
50
|
+
# @option state [Boolean] :strictness
|
49
51
|
#
|
50
52
|
# @option state [Hash{Symbol=>Object}] :exactness
|
51
53
|
#
|
54
|
+
# @option state [Class<StandardError>] :error
|
55
|
+
#
|
52
56
|
# @option state [Integer] :branched
|
53
57
|
#
|
54
58
|
# @return [StringIO, Object]
|
@@ -62,6 +66,7 @@ module Dodopayments
|
|
62
66
|
exactness[:yes] += 1
|
63
67
|
value
|
64
68
|
else
|
69
|
+
state[:error] = TypeError.new("#{value.class} can't be coerced into #{StringIO}")
|
65
70
|
exactness[:no] += 1
|
66
71
|
value
|
67
72
|
end
|
@@ -89,6 +94,13 @@ module Dodopayments
|
|
89
94
|
|
90
95
|
value
|
91
96
|
end
|
97
|
+
|
98
|
+
# @api private
|
99
|
+
#
|
100
|
+
# @return [Object]
|
101
|
+
def to_sorbet_type
|
102
|
+
T.any(Pathname, StringIO, IO, String, Dodopayments::FilePart)
|
103
|
+
end
|
92
104
|
end
|
93
105
|
end
|
94
106
|
end
|
@@ -12,6 +12,7 @@ module Dodopayments
|
|
12
12
|
# Hash of items of a given type.
|
13
13
|
class HashOf
|
14
14
|
include Dodopayments::Internal::Type::Converter
|
15
|
+
include Dodopayments::Internal::Util::SorbetRuntimeSupport
|
15
16
|
|
16
17
|
private_class_method :new
|
17
18
|
|
@@ -29,7 +30,7 @@ module Dodopayments
|
|
29
30
|
#
|
30
31
|
# @option spec [Boolean] :"nil?"
|
31
32
|
#
|
32
|
-
# @return [
|
33
|
+
# @return [self]
|
33
34
|
def self.[](...) = new(...)
|
34
35
|
|
35
36
|
# @api public
|
@@ -76,10 +77,14 @@ module Dodopayments
|
|
76
77
|
#
|
77
78
|
# @param state [Hash{Symbol=>Object}] .
|
78
79
|
#
|
79
|
-
# @option state [Boolean
|
80
|
+
# @option state [Boolean] :translate_names
|
81
|
+
#
|
82
|
+
# @option state [Boolean] :strictness
|
80
83
|
#
|
81
84
|
# @option state [Hash{Symbol=>Object}] :exactness
|
82
85
|
#
|
86
|
+
# @option state [Class<StandardError>] :error
|
87
|
+
#
|
83
88
|
# @option state [Integer] :branched
|
84
89
|
#
|
85
90
|
# @return [Hash{Symbol=>Object}, Object]
|
@@ -88,6 +93,7 @@ module Dodopayments
|
|
88
93
|
|
89
94
|
unless value.is_a?(Hash)
|
90
95
|
exactness[:no] += 1
|
96
|
+
state[:error] = TypeError.new("#{value.class} can't be coerced into #{Hash}")
|
91
97
|
return value
|
92
98
|
end
|
93
99
|
|
@@ -130,6 +136,13 @@ module Dodopayments
|
|
130
136
|
end
|
131
137
|
end
|
132
138
|
|
139
|
+
# @api private
|
140
|
+
#
|
141
|
+
# @return [Object]
|
142
|
+
def to_sorbet_type
|
143
|
+
T::Hash[Dodopayments::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(item_type)]
|
144
|
+
end
|
145
|
+
|
133
146
|
# @api private
|
134
147
|
#
|
135
148
|
# @return [generic<Elem>]
|
@@ -155,6 +168,7 @@ module Dodopayments
|
|
155
168
|
# @option spec [Boolean] :"nil?"
|
156
169
|
def initialize(type_info, spec = {})
|
157
170
|
@item_type_fn = Dodopayments::Internal::Type::Converter.type_info(type_info || spec)
|
171
|
+
@meta = Dodopayments::Internal::Type::Converter.meta_info(type_info, spec)
|
158
172
|
@nilable = spec.fetch(:nil?, false)
|
159
173
|
end
|
160
174
|
|
@@ -5,10 +5,10 @@ module Dodopayments
|
|
5
5
|
module Type
|
6
6
|
# @api private
|
7
7
|
module RequestParameters
|
8
|
-
# @!
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
8
|
+
# @!attribute request_options
|
9
|
+
# Options to specify HTTP behaviour for this request.
|
10
|
+
#
|
11
|
+
# @return [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
|
12
12
|
|
13
13
|
# @param mod [Module]
|
14
14
|
def self.included(mod)
|
@@ -28,14 +28,8 @@ module Dodopayments
|
|
28
28
|
state = {can_retry: true}
|
29
29
|
case (dumped = dump(params, state: state))
|
30
30
|
in Hash
|
31
|
-
options = Dodopayments::Internal::Util.coerce_hash(dumped[:request_options])
|
32
|
-
request_options =
|
33
|
-
case [options, state.fetch(:can_retry)]
|
34
|
-
in [Hash | nil, false]
|
35
|
-
{**options.to_h, max_retries: 0}
|
36
|
-
else
|
37
|
-
options
|
38
|
-
end
|
31
|
+
options = Dodopayments::Internal::Util.coerce_hash!(dumped[:request_options]).to_h
|
32
|
+
request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0}
|
39
33
|
[dumped.except(:request_options), request_options]
|
40
34
|
else
|
41
35
|
[dumped, nil]
|
@@ -6,46 +6,37 @@ module Dodopayments
|
|
6
6
|
# @api private
|
7
7
|
#
|
8
8
|
# @example
|
9
|
-
# # `
|
10
|
-
# case
|
11
|
-
# when Dodopayments::
|
12
|
-
# puts(
|
13
|
-
# when Dodopayments::
|
14
|
-
# puts(
|
9
|
+
# # `customer_request` is a `Dodopayments::CustomerRequest`
|
10
|
+
# case customer_request
|
11
|
+
# when Dodopayments::AttachExistingCustomer
|
12
|
+
# puts(customer_request.customer_id)
|
13
|
+
# when Dodopayments::NewCustomer
|
14
|
+
# puts(customer_request.email)
|
15
15
|
# else
|
16
|
-
# puts(
|
17
|
-
# end
|
18
|
-
#
|
19
|
-
# @example
|
20
|
-
# case price
|
21
|
-
# in {type: :one_time_price, currency: currency, discount: discount, price: price}
|
22
|
-
# puts(currency)
|
23
|
-
# in {type: :recurring_price, currency: currency, discount: discount, payment_frequency_count: payment_frequency_count}
|
24
|
-
# puts(discount)
|
25
|
-
# else
|
26
|
-
# puts(price)
|
16
|
+
# puts(customer_request)
|
27
17
|
# end
|
28
18
|
module Union
|
29
19
|
include Dodopayments::Internal::Type::Converter
|
20
|
+
include Dodopayments::Internal::Util::SorbetRuntimeSupport
|
30
21
|
|
31
22
|
# @api private
|
32
23
|
#
|
33
24
|
# All of the specified variant info for this union.
|
34
25
|
#
|
35
|
-
# @return [Array<Array(Symbol, Proc)>]
|
26
|
+
# @return [Array<Array(Symbol, Proc, Hash{Symbol=>Object})>]
|
36
27
|
private def known_variants = (@known_variants ||= [])
|
37
28
|
|
38
29
|
# @api private
|
39
30
|
#
|
40
|
-
# @return [Array<Array(Symbol, Object)>]
|
31
|
+
# @return [Array<Array(Symbol, Object, Hash{Symbol=>Object})>]
|
41
32
|
protected def derefed_variants
|
42
|
-
known_variants.map { |key, variant_fn| [key, variant_fn.call] }
|
33
|
+
known_variants.map { |key, variant_fn, meta| [key, variant_fn.call, meta] }
|
43
34
|
end
|
44
35
|
|
45
36
|
# All of the specified variants for this union.
|
46
37
|
#
|
47
38
|
# @return [Array<Object>]
|
48
|
-
def variants = derefed_variants.map
|
39
|
+
def variants = derefed_variants.map { _2 }
|
49
40
|
|
50
41
|
# @api private
|
51
42
|
#
|
@@ -71,12 +62,13 @@ module Dodopayments
|
|
71
62
|
#
|
72
63
|
# @option spec [Boolean] :"nil?"
|
73
64
|
private def variant(key, spec = nil)
|
65
|
+
meta = Dodopayments::Internal::Type::Converter.meta_info(nil, spec)
|
74
66
|
variant_info =
|
75
67
|
case key
|
76
68
|
in Symbol
|
77
|
-
[key, Dodopayments::Internal::Type::Converter.type_info(spec)]
|
69
|
+
[key, Dodopayments::Internal::Type::Converter.type_info(spec), meta]
|
78
70
|
in Proc | Dodopayments::Internal::Type::Converter | Class | Hash
|
79
|
-
[nil, Dodopayments::Internal::Type::Converter.type_info(key)]
|
71
|
+
[nil, Dodopayments::Internal::Type::Converter.type_info(key), meta]
|
80
72
|
end
|
81
73
|
|
82
74
|
known_variants << variant_info
|
@@ -99,7 +91,8 @@ module Dodopayments
|
|
99
91
|
return nil if key == Dodopayments::Internal::OMIT
|
100
92
|
|
101
93
|
key = key.to_sym if key.is_a?(String)
|
102
|
-
known_variants.find { |k,| k == key }
|
94
|
+
_, found = known_variants.find { |k,| k == key }
|
95
|
+
found&.call
|
103
96
|
else
|
104
97
|
nil
|
105
98
|
end
|
@@ -135,14 +128,23 @@ module Dodopayments
|
|
135
128
|
|
136
129
|
# @api private
|
137
130
|
#
|
131
|
+
# Tries to efficiently coerce the given value to one of the known variants.
|
132
|
+
#
|
133
|
+
# If the value cannot match any of the known variants, the coercion is considered
|
134
|
+
# non-viable and returns the original value.
|
135
|
+
#
|
138
136
|
# @param value [Object]
|
139
137
|
#
|
140
138
|
# @param state [Hash{Symbol=>Object}] .
|
141
139
|
#
|
142
|
-
# @option state [Boolean
|
140
|
+
# @option state [Boolean] :translate_names
|
141
|
+
#
|
142
|
+
# @option state [Boolean] :strictness
|
143
143
|
#
|
144
144
|
# @option state [Hash{Symbol=>Object}] :exactness
|
145
145
|
#
|
146
|
+
# @option state [Class<StandardError>] :error
|
147
|
+
#
|
146
148
|
# @option state [Integer] :branched
|
147
149
|
#
|
148
150
|
# @return [Object]
|
@@ -153,7 +155,6 @@ module Dodopayments
|
|
153
155
|
|
154
156
|
strictness = state.fetch(:strictness)
|
155
157
|
exactness = state.fetch(:exactness)
|
156
|
-
state[:strictness] = strictness == :strong ? true : strictness
|
157
158
|
|
158
159
|
alternatives = []
|
159
160
|
known_variants.each do |_, variant_fn|
|
@@ -172,13 +173,10 @@ module Dodopayments
|
|
172
173
|
end
|
173
174
|
end
|
174
175
|
|
175
|
-
case alternatives.sort_by(&:first)
|
176
|
+
case alternatives.sort_by!(&:first)
|
176
177
|
in []
|
177
178
|
exactness[:no] += 1
|
178
|
-
|
179
|
-
message = "no possible conversion of #{value.class} into a variant of #{target.inspect}"
|
180
|
-
raise ArgumentError.new(message)
|
181
|
-
end
|
179
|
+
state[:error] = ArgumentError.new("no matching variant for #{value.inspect}")
|
182
180
|
value
|
183
181
|
in [[_, exact, coerced], *]
|
184
182
|
exact.each { exactness[_1] += _2 }
|
@@ -217,6 +215,21 @@ module Dodopayments
|
|
217
215
|
super
|
218
216
|
end
|
219
217
|
|
218
|
+
# @api private
|
219
|
+
#
|
220
|
+
# @return [Object]
|
221
|
+
def to_sorbet_type
|
222
|
+
types = variants.map { Dodopayments::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(_1) }.uniq
|
223
|
+
case types
|
224
|
+
in []
|
225
|
+
T.noreturn
|
226
|
+
in [type]
|
227
|
+
type
|
228
|
+
else
|
229
|
+
T.any(*types)
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
220
233
|
# rubocop:enable Style/CaseEquality
|
221
234
|
# rubocop:enable Style/HashEachMethods
|
222
235
|
|
@@ -10,6 +10,7 @@ module Dodopayments
|
|
10
10
|
# When we don't know what to expect for the value.
|
11
11
|
class Unknown
|
12
12
|
extend Dodopayments::Internal::Type::Converter
|
13
|
+
extend Dodopayments::Internal::Util::SorbetRuntimeSupport
|
13
14
|
|
14
15
|
# rubocop:disable Lint/UnusedMethodArgument
|
15
16
|
|
@@ -32,14 +33,20 @@ module Dodopayments
|
|
32
33
|
class << self
|
33
34
|
# @api private
|
34
35
|
#
|
36
|
+
# No coercion needed for Unknown type.
|
37
|
+
#
|
35
38
|
# @param value [Object]
|
36
39
|
#
|
37
40
|
# @param state [Hash{Symbol=>Object}] .
|
38
41
|
#
|
39
|
-
# @option state [Boolean
|
42
|
+
# @option state [Boolean] :translate_names
|
43
|
+
#
|
44
|
+
# @option state [Boolean] :strictness
|
40
45
|
#
|
41
46
|
# @option state [Hash{Symbol=>Object}] :exactness
|
42
47
|
#
|
48
|
+
# @option state [Class<StandardError>] :error
|
49
|
+
#
|
43
50
|
# @option state [Integer] :branched
|
44
51
|
#
|
45
52
|
# @return [Object]
|
@@ -58,6 +65,13 @@ module Dodopayments
|
|
58
65
|
# @option state [Boolean] :can_retry
|
59
66
|
#
|
60
67
|
# @return [Object]
|
68
|
+
|
69
|
+
# @api private
|
70
|
+
#
|
71
|
+
# @return [Object]
|
72
|
+
def to_sorbet_type
|
73
|
+
T.anything
|
74
|
+
end
|
61
75
|
end
|
62
76
|
|
63
77
|
# rubocop:enable Lint/UnusedMethodArgument
|