dodopayments 0.0.1.pre.alpha.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 +7 -0
- data/README.md +154 -0
- data/lib/dodopayments/base_client.rb +453 -0
- data/lib/dodopayments/base_model.rb +1217 -0
- data/lib/dodopayments/base_page.rb +62 -0
- data/lib/dodopayments/client.rb +147 -0
- data/lib/dodopayments/default_page_number_pagination.rb +97 -0
- data/lib/dodopayments/errors.rb +183 -0
- data/lib/dodopayments/extern.rb +9 -0
- data/lib/dodopayments/models/attach_existing_customer.rb +19 -0
- data/lib/dodopayments/models/billing_address.rb +48 -0
- data/lib/dodopayments/models/country_code.rb +262 -0
- data/lib/dodopayments/models/create_new_customer.rb +44 -0
- data/lib/dodopayments/models/customer.rb +49 -0
- data/lib/dodopayments/models/customer_create_params.rb +36 -0
- data/lib/dodopayments/models/customer_limited_details.rb +34 -0
- data/lib/dodopayments/models/customer_list_params.rb +32 -0
- data/lib/dodopayments/models/customer_portal_session.rb +19 -0
- data/lib/dodopayments/models/customer_request.rb +18 -0
- data/lib/dodopayments/models/customer_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/customer_update_params.rb +30 -0
- data/lib/dodopayments/models/customers/customer_portal_create_params.rb +27 -0
- data/lib/dodopayments/models/discount.rb +108 -0
- data/lib/dodopayments/models/discount_create_params.rb +87 -0
- data/lib/dodopayments/models/discount_delete_params.rb +18 -0
- data/lib/dodopayments/models/discount_list_params.rb +32 -0
- data/lib/dodopayments/models/discount_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/discount_type.rb +12 -0
- data/lib/dodopayments/models/discount_update_params.rb +82 -0
- data/lib/dodopayments/models/dispute.rb +80 -0
- data/lib/dodopayments/models/dispute_list_params.rb +79 -0
- data/lib/dodopayments/models/dispute_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/dispute_stage.rb +14 -0
- data/lib/dodopayments/models/dispute_status.rb +18 -0
- data/lib/dodopayments/models/intent_status.rb +22 -0
- data/lib/dodopayments/models/invoices/payment_retrieve_params.rb +20 -0
- data/lib/dodopayments/models/license_activate_params.rb +30 -0
- data/lib/dodopayments/models/license_deactivate_params.rb +30 -0
- data/lib/dodopayments/models/license_key.rb +113 -0
- data/lib/dodopayments/models/license_key_duration.rb +25 -0
- data/lib/dodopayments/models/license_key_instance.rb +43 -0
- data/lib/dodopayments/models/license_key_instance_list_params.rb +39 -0
- data/lib/dodopayments/models/license_key_instance_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/license_key_instance_update_params.rb +24 -0
- data/lib/dodopayments/models/license_key_list_params.rb +53 -0
- data/lib/dodopayments/models/license_key_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/license_key_status.rb +14 -0
- data/lib/dodopayments/models/license_key_update_params.rb +42 -0
- data/lib/dodopayments/models/license_validate_params.rb +30 -0
- data/lib/dodopayments/models/license_validate_response.rb +19 -0
- data/lib/dodopayments/models/misc_list_supported_countries_params.rb +18 -0
- data/lib/dodopayments/models/misc_list_supported_countries_response.rb +7 -0
- data/lib/dodopayments/models/one_time_product_cart_item.rb +33 -0
- data/lib/dodopayments/models/payment.rb +339 -0
- data/lib/dodopayments/models/payment_create_params.rb +90 -0
- data/lib/dodopayments/models/payment_create_response.rb +82 -0
- data/lib/dodopayments/models/payment_list_params.rb +79 -0
- data/lib/dodopayments/models/payment_list_response.rb +238 -0
- data/lib/dodopayments/models/payment_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/payout_list_params.rb +32 -0
- data/lib/dodopayments/models/payout_list_response.rb +295 -0
- data/lib/dodopayments/models/price.rb +512 -0
- data/lib/dodopayments/models/product.rb +149 -0
- data/lib/dodopayments/models/product_create_params.rb +107 -0
- data/lib/dodopayments/models/product_delete_params.rb +18 -0
- data/lib/dodopayments/models/product_list_params.rb +54 -0
- data/lib/dodopayments/models/product_list_response.rb +293 -0
- data/lib/dodopayments/models/product_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/product_unarchive_params.rb +18 -0
- data/lib/dodopayments/models/product_update_params.rb +124 -0
- data/lib/dodopayments/models/products/image_update_params.rb +26 -0
- data/lib/dodopayments/models/products/image_update_response.rb +27 -0
- data/lib/dodopayments/models/refund.rb +218 -0
- data/lib/dodopayments/models/refund_create_params.rb +40 -0
- data/lib/dodopayments/models/refund_list_params.rb +71 -0
- data/lib/dodopayments/models/refund_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/refund_status.rb +15 -0
- data/lib/dodopayments/models/subscription.rb +309 -0
- data/lib/dodopayments/models/subscription_create_params.rb +106 -0
- data/lib/dodopayments/models/subscription_create_response.rb +73 -0
- data/lib/dodopayments/models/subscription_list_params.rb +71 -0
- data/lib/dodopayments/models/subscription_retrieve_params.rb +18 -0
- data/lib/dodopayments/models/subscription_status.rb +18 -0
- data/lib/dodopayments/models/subscription_update_params.rb +30 -0
- data/lib/dodopayments/models/time_interval.rb +15 -0
- data/lib/dodopayments/models/webhook_event.rb +73 -0
- data/lib/dodopayments/models/webhook_event_list_params.rb +71 -0
- data/lib/dodopayments/models/webhook_event_retrieve_params.rb +18 -0
- data/lib/dodopayments/pooled_net_requester.rb +164 -0
- data/lib/dodopayments/request_options.rb +110 -0
- data/lib/dodopayments/resources/customers/customer_portal.rb +34 -0
- data/lib/dodopayments/resources/customers.rb +97 -0
- data/lib/dodopayments/resources/discounts.rb +154 -0
- data/lib/dodopayments/resources/disputes.rb +59 -0
- data/lib/dodopayments/resources/invoices/payments.rb +30 -0
- data/lib/dodopayments/resources/invoices.rb +16 -0
- data/lib/dodopayments/resources/license_key_instances.rb +71 -0
- data/lib/dodopayments/resources/license_keys.rb +82 -0
- data/lib/dodopayments/resources/licenses.rb +72 -0
- data/lib/dodopayments/resources/misc.rb +26 -0
- data/lib/dodopayments/resources/payments.rb +93 -0
- data/lib/dodopayments/resources/payouts.rb +33 -0
- data/lib/dodopayments/resources/products/images.rb +34 -0
- data/lib/dodopayments/resources/products.rb +176 -0
- data/lib/dodopayments/resources/refunds.rb +80 -0
- data/lib/dodopayments/resources/subscriptions.rb +117 -0
- data/lib/dodopayments/resources/webhook_events.rb +57 -0
- data/lib/dodopayments/util.rb +717 -0
- data/lib/dodopayments/version.rb +5 -0
- data/lib/dodopayments.rb +128 -0
- data/manifest.yaml +14 -0
- data/rbi/lib/dodopayments/base_client.rbi +186 -0
- data/rbi/lib/dodopayments/base_model.rbi +606 -0
- data/rbi/lib/dodopayments/base_page.rbi +40 -0
- data/rbi/lib/dodopayments/client.rbi +117 -0
- data/rbi/lib/dodopayments/default_page_number_pagination.rbi +17 -0
- data/rbi/lib/dodopayments/errors.rbi +179 -0
- data/rbi/lib/dodopayments/extern.rbi +8 -0
- data/rbi/lib/dodopayments/models/attach_existing_customer.rbi +23 -0
- data/rbi/lib/dodopayments/models/billing_address.rbi +65 -0
- data/rbi/lib/dodopayments/models/country_code.rbi +266 -0
- data/rbi/lib/dodopayments/models/create_new_customer.rbi +61 -0
- data/rbi/lib/dodopayments/models/customer.rbi +85 -0
- data/rbi/lib/dodopayments/models/customer_create_params.rbi +60 -0
- data/rbi/lib/dodopayments/models/customer_limited_details.rbi +42 -0
- data/rbi/lib/dodopayments/models/customer_list_params.rbi +52 -0
- data/rbi/lib/dodopayments/models/customer_portal_session.rbi +23 -0
- data/rbi/lib/dodopayments/models/customer_request.rbi +15 -0
- data/rbi/lib/dodopayments/models/customer_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/customer_update_params.rbi +50 -0
- data/rbi/lib/dodopayments/models/customers/customer_portal_create_params.rbi +37 -0
- data/rbi/lib/dodopayments/models/discount.rbi +161 -0
- data/rbi/lib/dodopayments/models/discount_create_params.rbi +124 -0
- data/rbi/lib/dodopayments/models/discount_delete_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/discount_list_params.rbi +52 -0
- data/rbi/lib/dodopayments/models/discount_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/discount_type.rbi +17 -0
- data/rbi/lib/dodopayments/models/discount_update_params.rbi +119 -0
- data/rbi/lib/dodopayments/models/dispute.rbi +112 -0
- data/rbi/lib/dodopayments/models/dispute_list_params.rbi +116 -0
- data/rbi/lib/dodopayments/models/dispute_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/dispute_stage.rbi +19 -0
- data/rbi/lib/dodopayments/models/dispute_status.rbi +23 -0
- data/rbi/lib/dodopayments/models/intent_status.rbi +27 -0
- data/rbi/lib/dodopayments/models/invoices/payment_retrieve_params.rbi +23 -0
- data/rbi/lib/dodopayments/models/license_activate_params.rbi +43 -0
- data/rbi/lib/dodopayments/models/license_deactivate_params.rbi +50 -0
- data/rbi/lib/dodopayments/models/license_key.rbi +170 -0
- data/rbi/lib/dodopayments/models/license_key_duration.rbi +31 -0
- data/rbi/lib/dodopayments/models/license_key_instance.rbi +68 -0
- data/rbi/lib/dodopayments/models/license_key_instance_list_params.rbi +63 -0
- data/rbi/lib/dodopayments/models/license_key_instance_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/license_key_instance_update_params.rbi +35 -0
- data/rbi/lib/dodopayments/models/license_key_list_params.rbi +85 -0
- data/rbi/lib/dodopayments/models/license_key_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/license_key_status.rbi +19 -0
- data/rbi/lib/dodopayments/models/license_key_update_params.rbi +66 -0
- data/rbi/lib/dodopayments/models/license_validate_params.rbi +50 -0
- data/rbi/lib/dodopayments/models/license_validate_response.rbi +23 -0
- data/rbi/lib/dodopayments/models/misc_list_supported_countries_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/misc_list_supported_countries_response.rbi +7 -0
- data/rbi/lib/dodopayments/models/one_time_product_cart_item.rbi +43 -0
- data/rbi/lib/dodopayments/models/payment.rbi +439 -0
- data/rbi/lib/dodopayments/models/payment_create_params.rbi +133 -0
- data/rbi/lib/dodopayments/models/payment_create_response.rbi +127 -0
- data/rbi/lib/dodopayments/models/payment_list_params.rbi +116 -0
- data/rbi/lib/dodopayments/models/payment_list_response.rbi +295 -0
- data/rbi/lib/dodopayments/models/payment_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/payout_list_params.rbi +52 -0
- data/rbi/lib/dodopayments/models/payout_list_response.rbi +374 -0
- data/rbi/lib/dodopayments/models/price.rbi +603 -0
- data/rbi/lib/dodopayments/models/product.rbi +228 -0
- data/rbi/lib/dodopayments/models/product_create_params.rbi +162 -0
- data/rbi/lib/dodopayments/models/product_delete_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/product_list_params.rbi +78 -0
- data/rbi/lib/dodopayments/models/product_list_response.rbi +374 -0
- data/rbi/lib/dodopayments/models/product_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/product_unarchive_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/product_update_params.rbi +191 -0
- data/rbi/lib/dodopayments/models/products/image_update_params.rbi +41 -0
- data/rbi/lib/dodopayments/models/products/image_update_response.rbi +33 -0
- data/rbi/lib/dodopayments/models/refund.rbi +267 -0
- data/rbi/lib/dodopayments/models/refund_create_params.rbi +64 -0
- data/rbi/lib/dodopayments/models/refund_list_params.rbi +104 -0
- data/rbi/lib/dodopayments/models/refund_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/refund_status.rbi +20 -0
- data/rbi/lib/dodopayments/models/subscription.rbi +397 -0
- data/rbi/lib/dodopayments/models/subscription_create_params.rbi +154 -0
- data/rbi/lib/dodopayments/models/subscription_create_response.rbi +113 -0
- data/rbi/lib/dodopayments/models/subscription_list_params.rbi +104 -0
- data/rbi/lib/dodopayments/models/subscription_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/models/subscription_status.rbi +23 -0
- data/rbi/lib/dodopayments/models/subscription_update_params.rbi +50 -0
- data/rbi/lib/dodopayments/models/time_interval.rbi +20 -0
- data/rbi/lib/dodopayments/models/webhook_event.rbi +114 -0
- data/rbi/lib/dodopayments/models/webhook_event_list_params.rbi +104 -0
- data/rbi/lib/dodopayments/models/webhook_event_retrieve_params.rbi +21 -0
- data/rbi/lib/dodopayments/pooled_net_requester.rbi +47 -0
- data/rbi/lib/dodopayments/request_options.rbi +109 -0
- data/rbi/lib/dodopayments/resources/customers/customer_portal.rbi +30 -0
- data/rbi/lib/dodopayments/resources/customers.rbi +76 -0
- data/rbi/lib/dodopayments/resources/discounts.rbi +139 -0
- data/rbi/lib/dodopayments/resources/disputes.rbi +57 -0
- data/rbi/lib/dodopayments/resources/invoices/payments.rbi +23 -0
- data/rbi/lib/dodopayments/resources/invoices.rbi +15 -0
- data/rbi/lib/dodopayments/resources/license_key_instances.rbi +61 -0
- data/rbi/lib/dodopayments/resources/license_keys.rbi +77 -0
- data/rbi/lib/dodopayments/resources/licenses.rbi +44 -0
- data/rbi/lib/dodopayments/resources/misc.rbi +18 -0
- data/rbi/lib/dodopayments/resources/payments.rbi +91 -0
- data/rbi/lib/dodopayments/resources/payouts.rbi +28 -0
- data/rbi/lib/dodopayments/resources/products/images.rbi +29 -0
- data/rbi/lib/dodopayments/resources/products.rbi +164 -0
- data/rbi/lib/dodopayments/resources/refunds.rbi +75 -0
- data/rbi/lib/dodopayments/resources/subscriptions.rbi +112 -0
- data/rbi/lib/dodopayments/resources/webhook_events.rbi +50 -0
- data/rbi/lib/dodopayments/util.rbi +270 -0
- data/rbi/lib/dodopayments/version.rbi +5 -0
- data/sig/dodopayments/base_client.rbs +103 -0
- data/sig/dodopayments/base_model.rbs +246 -0
- data/sig/dodopayments/base_page.rbs +20 -0
- data/sig/dodopayments/client.rbs +58 -0
- data/sig/dodopayments/default_page_number_pagination.rbs +7 -0
- data/sig/dodopayments/errors.rbs +99 -0
- data/sig/dodopayments/extern.rbs +4 -0
- data/sig/dodopayments/models/attach_existing_customer.rbs +18 -0
- data/sig/dodopayments/models/billing_address.rbs +38 -0
- data/sig/dodopayments/models/country_code.rbs +508 -0
- data/sig/dodopayments/models/create_new_customer.rbs +37 -0
- data/sig/dodopayments/models/customer.rbs +42 -0
- data/sig/dodopayments/models/customer_create_params.rbs +32 -0
- data/sig/dodopayments/models/customer_limited_details.rbs +23 -0
- data/sig/dodopayments/models/customer_list_params.rbs +29 -0
- data/sig/dodopayments/models/customer_portal_session.rbs +18 -0
- data/sig/dodopayments/models/customer_request.rbs +11 -0
- data/sig/dodopayments/models/customer_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/customer_update_params.rbs +29 -0
- data/sig/dodopayments/models/customers/customer_portal_create_params.rbs +27 -0
- data/sig/dodopayments/models/discount.rbs +62 -0
- data/sig/dodopayments/models/discount_create_params.rbs +52 -0
- data/sig/dodopayments/models/discount_delete_params.rbs +19 -0
- data/sig/dodopayments/models/discount_list_params.rbs +29 -0
- data/sig/dodopayments/models/discount_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/discount_type.rbs +11 -0
- data/sig/dodopayments/models/discount_update_params.rbs +52 -0
- data/sig/dodopayments/models/dispute.rbs +50 -0
- data/sig/dodopayments/models/dispute_list_params.rbs +52 -0
- data/sig/dodopayments/models/dispute_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/dispute_stage.rbs +13 -0
- data/sig/dodopayments/models/dispute_status.rbs +24 -0
- data/sig/dodopayments/models/intent_status.rbs +32 -0
- data/sig/dodopayments/models/invoices/payment_retrieve_params.rbs +21 -0
- data/sig/dodopayments/models/license_activate_params.rbs +28 -0
- data/sig/dodopayments/models/license_deactivate_params.rbs +29 -0
- data/sig/dodopayments/models/license_key.rbs +66 -0
- data/sig/dodopayments/models/license_key_duration.rbs +21 -0
- data/sig/dodopayments/models/license_key_instance.rbs +39 -0
- data/sig/dodopayments/models/license_key_instance_list_params.rbs +32 -0
- data/sig/dodopayments/models/license_key_instance_retrieve_params.rbs +20 -0
- data/sig/dodopayments/models/license_key_instance_update_params.rbs +22 -0
- data/sig/dodopayments/models/license_key_list_params.rbs +44 -0
- data/sig/dodopayments/models/license_key_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/license_key_status.rbs +13 -0
- data/sig/dodopayments/models/license_key_update_params.rbs +32 -0
- data/sig/dodopayments/models/license_validate_params.rbs +29 -0
- data/sig/dodopayments/models/license_validate_response.rbs +18 -0
- data/sig/dodopayments/models/misc_list_supported_countries_params.rbs +20 -0
- data/sig/dodopayments/models/misc_list_supported_countries_response.rbs +8 -0
- data/sig/dodopayments/models/one_time_product_cart_item.rbs +23 -0
- data/sig/dodopayments/models/payment.rbs +408 -0
- data/sig/dodopayments/models/payment_create_params.rbs +58 -0
- data/sig/dodopayments/models/payment_create_response.rbs +51 -0
- data/sig/dodopayments/models/payment_list_params.rbs +52 -0
- data/sig/dodopayments/models/payment_list_response.rbs +356 -0
- data/sig/dodopayments/models/payment_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/payout_list_params.rbs +29 -0
- data/sig/dodopayments/models/payout_list_response.rbs +386 -0
- data/sig/dodopayments/models/price.rbs +717 -0
- data/sig/dodopayments/models/product.rbs +89 -0
- data/sig/dodopayments/models/product_create_params.rbs +71 -0
- data/sig/dodopayments/models/product_delete_params.rbs +19 -0
- data/sig/dodopayments/models/product_list_params.rbs +42 -0
- data/sig/dodopayments/models/product_list_response.rbs +379 -0
- data/sig/dodopayments/models/product_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/product_unarchive_params.rbs +19 -0
- data/sig/dodopayments/models/product_update_params.rbs +75 -0
- data/sig/dodopayments/models/products/image_update_params.rbs +27 -0
- data/sig/dodopayments/models/products/image_update_response.rbs +22 -0
- data/sig/dodopayments/models/refund.rbs +345 -0
- data/sig/dodopayments/models/refund_create_params.rbs +32 -0
- data/sig/dodopayments/models/refund_list_params.rbs +48 -0
- data/sig/dodopayments/models/refund_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/refund_status.rbs +14 -0
- data/sig/dodopayments/models/subscription.rbs +387 -0
- data/sig/dodopayments/models/subscription_create_params.rbs +66 -0
- data/sig/dodopayments/models/subscription_create_response.rbs +47 -0
- data/sig/dodopayments/models/subscription_list_params.rbs +48 -0
- data/sig/dodopayments/models/subscription_retrieve_params.rbs +19 -0
- data/sig/dodopayments/models/subscription_status.rbs +18 -0
- data/sig/dodopayments/models/subscription_update_params.rbs +32 -0
- data/sig/dodopayments/models/time_interval.rbs +14 -0
- data/sig/dodopayments/models/webhook_event.rbs +50 -0
- data/sig/dodopayments/models/webhook_event_list_params.rbs +48 -0
- data/sig/dodopayments/models/webhook_event_retrieve_params.rbs +19 -0
- data/sig/dodopayments/pooled_net_requester.rbs +30 -0
- data/sig/dodopayments/request_options.rbs +46 -0
- data/sig/dodopayments/resources/customers/customer_portal.rbs +21 -0
- data/sig/dodopayments/resources/customers.rbs +55 -0
- data/sig/dodopayments/resources/discounts.rbs +73 -0
- data/sig/dodopayments/resources/disputes.rbs +33 -0
- data/sig/dodopayments/resources/invoices/payments.rbs +20 -0
- data/sig/dodopayments/resources/invoices.rbs +9 -0
- data/sig/dodopayments/resources/license_key_instances.rbs +42 -0
- data/sig/dodopayments/resources/license_keys.rbs +46 -0
- data/sig/dodopayments/resources/licenses.rbs +40 -0
- data/sig/dodopayments/resources/misc.rbs +16 -0
- data/sig/dodopayments/resources/payments.rbs +49 -0
- data/sig/dodopayments/resources/payouts.rbs +17 -0
- data/sig/dodopayments/resources/products/images.rbs +21 -0
- data/sig/dodopayments/resources/products.rbs +86 -0
- data/sig/dodopayments/resources/refunds.rbs +43 -0
- data/sig/dodopayments/resources/subscriptions.rbs +65 -0
- data/sig/dodopayments/resources/webhook_events.rbs +33 -0
- data/sig/dodopayments/util.rbs +136 -0
- data/sig/dodopayments/version.rbs +3 -0
- metadata +383 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
# @abstract
|
5
|
+
#
|
6
|
+
# @example
|
7
|
+
# ```ruby
|
8
|
+
# if page.has_next?
|
9
|
+
# page = page.next_page
|
10
|
+
# end
|
11
|
+
# ```
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
# ```ruby
|
15
|
+
# page.auto_paging_each do |payment|
|
16
|
+
# puts(payment)
|
17
|
+
# end
|
18
|
+
# ```
|
19
|
+
#
|
20
|
+
# @example
|
21
|
+
# ```ruby
|
22
|
+
# payments = page
|
23
|
+
# .to_enum
|
24
|
+
# .lazy
|
25
|
+
# .select { _1.object_id.even? }
|
26
|
+
# .map(&:itself)
|
27
|
+
# .take(2)
|
28
|
+
# .to_a
|
29
|
+
#
|
30
|
+
# payments => Array
|
31
|
+
# ```
|
32
|
+
module BasePage
|
33
|
+
# @return [Boolean]
|
34
|
+
def next_page? = (raise NotImplementedError)
|
35
|
+
|
36
|
+
# @raise [Dodopayments::APIError]
|
37
|
+
# @return [Dodopayments::BasePage]
|
38
|
+
def next_page = (raise NotImplementedError)
|
39
|
+
|
40
|
+
# @param blk [Proc]
|
41
|
+
#
|
42
|
+
# @return [void]
|
43
|
+
def auto_paging_each(&) = (raise NotImplementedError)
|
44
|
+
|
45
|
+
# @return [Enumerable]
|
46
|
+
def to_enum = super(:auto_paging_each)
|
47
|
+
|
48
|
+
alias_method :enum_for, :to_enum
|
49
|
+
|
50
|
+
# @api private
|
51
|
+
#
|
52
|
+
# @param client [Dodopayments::BaseClient]
|
53
|
+
# @param req [Hash{Symbol=>Object}]
|
54
|
+
# @param headers [Hash{String=>String}, Net::HTTPHeader]
|
55
|
+
# @param page_data [Object]
|
56
|
+
def initialize(client:, req:, headers:, page_data:)
|
57
|
+
@client = client
|
58
|
+
@req = req
|
59
|
+
super()
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
class Client < Dodopayments::BaseClient
|
5
|
+
# Default max number of retries to attempt after a failed retryable request.
|
6
|
+
DEFAULT_MAX_RETRIES = 2
|
7
|
+
|
8
|
+
# Default per-request timeout.
|
9
|
+
DEFAULT_TIMEOUT_IN_SECONDS = 60.0
|
10
|
+
|
11
|
+
# Default initial retry delay in seconds.
|
12
|
+
# Overall delay is calculated using exponential backoff + jitter.
|
13
|
+
DEFAULT_INITIAL_RETRY_DELAY = 0.5
|
14
|
+
|
15
|
+
# Default max retry delay in seconds.
|
16
|
+
DEFAULT_MAX_RETRY_DELAY = 8.0
|
17
|
+
|
18
|
+
# rubocop:disable Style/MutableConstant
|
19
|
+
ENVIRONMENTS = {live_mode: "https://live.dodopayments.com", test_mode: "https://test.dodopayments.com"}
|
20
|
+
# rubocop:enable Style/MutableConstant
|
21
|
+
|
22
|
+
# Bearer Token for API authentication
|
23
|
+
# @return [String]
|
24
|
+
attr_reader :bearer_token
|
25
|
+
|
26
|
+
# @return [Dodopayments::Resources::Payments]
|
27
|
+
attr_reader :payments
|
28
|
+
|
29
|
+
# @return [Dodopayments::Resources::Subscriptions]
|
30
|
+
attr_reader :subscriptions
|
31
|
+
|
32
|
+
# @return [Dodopayments::Resources::Invoices]
|
33
|
+
attr_reader :invoices
|
34
|
+
|
35
|
+
# @return [Dodopayments::Resources::Licenses]
|
36
|
+
attr_reader :licenses
|
37
|
+
|
38
|
+
# @return [Dodopayments::Resources::LicenseKeys]
|
39
|
+
attr_reader :license_keys
|
40
|
+
|
41
|
+
# @return [Dodopayments::Resources::LicenseKeyInstances]
|
42
|
+
attr_reader :license_key_instances
|
43
|
+
|
44
|
+
# @return [Dodopayments::Resources::Customers]
|
45
|
+
attr_reader :customers
|
46
|
+
|
47
|
+
# @return [Dodopayments::Resources::Refunds]
|
48
|
+
attr_reader :refunds
|
49
|
+
|
50
|
+
# @return [Dodopayments::Resources::Disputes]
|
51
|
+
attr_reader :disputes
|
52
|
+
|
53
|
+
# @return [Dodopayments::Resources::Payouts]
|
54
|
+
attr_reader :payouts
|
55
|
+
|
56
|
+
# @return [Dodopayments::Resources::WebhookEvents]
|
57
|
+
attr_reader :webhook_events
|
58
|
+
|
59
|
+
# @return [Dodopayments::Resources::Products]
|
60
|
+
attr_reader :products
|
61
|
+
|
62
|
+
# @return [Dodopayments::Resources::Misc]
|
63
|
+
attr_reader :misc
|
64
|
+
|
65
|
+
# @return [Dodopayments::Resources::Discounts]
|
66
|
+
attr_reader :discounts
|
67
|
+
|
68
|
+
# @api private
|
69
|
+
#
|
70
|
+
# @return [Hash{String=>String}]
|
71
|
+
private def auth_headers
|
72
|
+
return {} if @bearer_token.nil?
|
73
|
+
|
74
|
+
{"authorization" => "Bearer #{@bearer_token}"}
|
75
|
+
end
|
76
|
+
|
77
|
+
# Creates and returns a new client for interacting with the API.
|
78
|
+
#
|
79
|
+
# @param environment [:live_mode, :test_mode, nil] Specifies the environment to use for the API.
|
80
|
+
#
|
81
|
+
# Each environment maps to a different base URL:
|
82
|
+
#
|
83
|
+
# - `live_mode` corresponds to `https://live.dodopayments.com`
|
84
|
+
# - `test_mode` corresponds to `https://test.dodopayments.com`
|
85
|
+
#
|
86
|
+
# @param base_url [String, nil] Override the default base URL for the API, e.g., `"https://api.example.com/v2/"`
|
87
|
+
#
|
88
|
+
# @param bearer_token [String, nil] Bearer Token for API authentication Defaults to `ENV["DODO_PAYMENTS_API_KEY"]`
|
89
|
+
#
|
90
|
+
# @param max_retries [Integer] Max number of retries to attempt after a failed retryable request.
|
91
|
+
#
|
92
|
+
# @param timeout [Float]
|
93
|
+
#
|
94
|
+
# @param initial_retry_delay [Float]
|
95
|
+
#
|
96
|
+
# @param max_retry_delay [Float]
|
97
|
+
def initialize(
|
98
|
+
environment: nil,
|
99
|
+
base_url: nil,
|
100
|
+
bearer_token: ENV["DODO_PAYMENTS_API_KEY"],
|
101
|
+
max_retries: DEFAULT_MAX_RETRIES,
|
102
|
+
timeout: DEFAULT_TIMEOUT_IN_SECONDS,
|
103
|
+
initial_retry_delay: DEFAULT_INITIAL_RETRY_DELAY,
|
104
|
+
max_retry_delay: DEFAULT_MAX_RETRY_DELAY
|
105
|
+
)
|
106
|
+
case [environment, base_url]
|
107
|
+
in [Symbol | String, String]
|
108
|
+
raise ArgumentError.new("both environment and base_url given, expected only one")
|
109
|
+
in [Symbol | String, nil]
|
110
|
+
base_url = ENVIRONMENTS.fetch(environment.to_sym) do
|
111
|
+
raise ArgumentError.new("environment must be one of #{ENVIRONMENTS.keys}, got #{environment}")
|
112
|
+
end
|
113
|
+
else
|
114
|
+
base_url ||= ENVIRONMENTS.fetch(:production)
|
115
|
+
end
|
116
|
+
|
117
|
+
if bearer_token.nil?
|
118
|
+
raise ArgumentError.new("bearer_token is required")
|
119
|
+
end
|
120
|
+
|
121
|
+
@bearer_token = bearer_token.to_s
|
122
|
+
|
123
|
+
super(
|
124
|
+
base_url: base_url,
|
125
|
+
timeout: timeout,
|
126
|
+
max_retries: max_retries,
|
127
|
+
initial_retry_delay: initial_retry_delay,
|
128
|
+
max_retry_delay: max_retry_delay
|
129
|
+
)
|
130
|
+
|
131
|
+
@payments = Dodopayments::Resources::Payments.new(client: self)
|
132
|
+
@subscriptions = Dodopayments::Resources::Subscriptions.new(client: self)
|
133
|
+
@invoices = Dodopayments::Resources::Invoices.new(client: self)
|
134
|
+
@licenses = Dodopayments::Resources::Licenses.new(client: self)
|
135
|
+
@license_keys = Dodopayments::Resources::LicenseKeys.new(client: self)
|
136
|
+
@license_key_instances = Dodopayments::Resources::LicenseKeyInstances.new(client: self)
|
137
|
+
@customers = Dodopayments::Resources::Customers.new(client: self)
|
138
|
+
@refunds = Dodopayments::Resources::Refunds.new(client: self)
|
139
|
+
@disputes = Dodopayments::Resources::Disputes.new(client: self)
|
140
|
+
@payouts = Dodopayments::Resources::Payouts.new(client: self)
|
141
|
+
@webhook_events = Dodopayments::Resources::WebhookEvents.new(client: self)
|
142
|
+
@products = Dodopayments::Resources::Products.new(client: self)
|
143
|
+
@misc = Dodopayments::Resources::Misc.new(client: self)
|
144
|
+
@discounts = Dodopayments::Resources::Discounts.new(client: self)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
# @example
|
5
|
+
# ```ruby
|
6
|
+
# if default_page_number_pagination.has_next?
|
7
|
+
# default_page_number_pagination = default_page_number_pagination.next_page
|
8
|
+
# end
|
9
|
+
# ```
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# ```ruby
|
13
|
+
# default_page_number_pagination.auto_paging_each do |payment|
|
14
|
+
# puts(payment)
|
15
|
+
# end
|
16
|
+
# ```
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# ```ruby
|
20
|
+
# payments = default_page_number_pagination
|
21
|
+
# .to_enum
|
22
|
+
# .lazy
|
23
|
+
# .select { _1.object_id.even? }
|
24
|
+
# .map(&:itself)
|
25
|
+
# .take(2)
|
26
|
+
# .to_a
|
27
|
+
#
|
28
|
+
# payments => Array
|
29
|
+
# ```
|
30
|
+
class DefaultPageNumberPagination
|
31
|
+
include Dodopayments::BasePage
|
32
|
+
|
33
|
+
# @return [Array<Object>, nil]
|
34
|
+
attr_accessor :items
|
35
|
+
|
36
|
+
# @api private
|
37
|
+
#
|
38
|
+
# @param client [Dodopayments::BaseClient]
|
39
|
+
# @param req [Hash{Symbol=>Object}]
|
40
|
+
# @param headers [Hash{String=>String}, Net::HTTPHeader]
|
41
|
+
# @param page_data [Hash{Symbol=>Object}]
|
42
|
+
def initialize(client:, req:, headers:, page_data:)
|
43
|
+
super
|
44
|
+
model = req.fetch(:model)
|
45
|
+
|
46
|
+
case page_data
|
47
|
+
in {items: Array | nil => items}
|
48
|
+
@items = items&.map { model.coerce(_1) }
|
49
|
+
else
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# @return [Boolean]
|
54
|
+
def next_page?
|
55
|
+
!items.to_a.empty?
|
56
|
+
end
|
57
|
+
|
58
|
+
# @raise [Dodopayments::HTTP::Error]
|
59
|
+
# @return [Dodopayments::DefaultPageNumberPagination]
|
60
|
+
def next_page
|
61
|
+
unless next_page?
|
62
|
+
raise RuntimeError.new("No more pages available. Please check #next_page? before calling ##{__method__}")
|
63
|
+
end
|
64
|
+
|
65
|
+
req = Dodopayments::Util.deep_merge(
|
66
|
+
@req,
|
67
|
+
{
|
68
|
+
query: {
|
69
|
+
page_number: @req.fetch(:query).fetch(
|
70
|
+
:page_number,
|
71
|
+
1
|
72
|
+
).to_i.succ
|
73
|
+
}
|
74
|
+
}
|
75
|
+
)
|
76
|
+
@client.request(req)
|
77
|
+
end
|
78
|
+
|
79
|
+
# @param blk [Proc]
|
80
|
+
def auto_paging_each(&blk)
|
81
|
+
unless block_given?
|
82
|
+
raise ArgumentError.new("A block must be given to ##{__method__}")
|
83
|
+
end
|
84
|
+
page = self
|
85
|
+
loop do
|
86
|
+
page.items&.each { blk.call(_1) }
|
87
|
+
break unless page.next_page?
|
88
|
+
page = page.next_page
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# @return [String]
|
93
|
+
def inspect
|
94
|
+
"#<#{self.class}:0x#{object_id.to_s(16)} items=#{items.inspect}>"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,183 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
class Error < StandardError
|
5
|
+
# @!parse
|
6
|
+
# # @return [StandardError, nil]
|
7
|
+
# attr_accessor :cause
|
8
|
+
end
|
9
|
+
|
10
|
+
class ConversionError < Dodopayments::Error
|
11
|
+
end
|
12
|
+
|
13
|
+
class APIError < Dodopayments::Error
|
14
|
+
# @return [URI::Generic]
|
15
|
+
attr_accessor :url
|
16
|
+
|
17
|
+
# @return [Integer, nil]
|
18
|
+
attr_accessor :status
|
19
|
+
|
20
|
+
# @return [Object, nil]
|
21
|
+
attr_accessor :body
|
22
|
+
|
23
|
+
# @api private
|
24
|
+
#
|
25
|
+
# @param url [URI::Generic]
|
26
|
+
# @param status [Integer, nil]
|
27
|
+
# @param body [Object, nil]
|
28
|
+
# @param request [nil]
|
29
|
+
# @param response [nil]
|
30
|
+
# @param message [String, nil]
|
31
|
+
def initialize(url:, status: nil, body: nil, request: nil, response: nil, message: nil)
|
32
|
+
@url = url
|
33
|
+
@status = status
|
34
|
+
@body = body
|
35
|
+
@request = request
|
36
|
+
@response = response
|
37
|
+
super(message)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class APIConnectionError < Dodopayments::APIError
|
42
|
+
# @!parse
|
43
|
+
# # @return [nil]
|
44
|
+
# attr_accessor :status
|
45
|
+
|
46
|
+
# @!parse
|
47
|
+
# # @return [nil]
|
48
|
+
# attr_accessor :body
|
49
|
+
|
50
|
+
# @api private
|
51
|
+
#
|
52
|
+
# @param url [URI::Generic]
|
53
|
+
# @param status [nil]
|
54
|
+
# @param body [nil]
|
55
|
+
# @param request [nil]
|
56
|
+
# @param response [nil]
|
57
|
+
# @param message [String, nil]
|
58
|
+
def initialize(
|
59
|
+
url:,
|
60
|
+
status: nil,
|
61
|
+
body: nil,
|
62
|
+
request: nil,
|
63
|
+
response: nil,
|
64
|
+
message: "Connection error."
|
65
|
+
)
|
66
|
+
super
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
class APITimeoutError < Dodopayments::APIConnectionError
|
71
|
+
# @api private
|
72
|
+
#
|
73
|
+
# @param url [URI::Generic]
|
74
|
+
# @param status [nil]
|
75
|
+
# @param body [nil]
|
76
|
+
# @param request [nil]
|
77
|
+
# @param response [nil]
|
78
|
+
# @param message [String, nil]
|
79
|
+
def initialize(
|
80
|
+
url:,
|
81
|
+
status: nil,
|
82
|
+
body: nil,
|
83
|
+
request: nil,
|
84
|
+
response: nil,
|
85
|
+
message: "Request timed out."
|
86
|
+
)
|
87
|
+
super
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
class APIStatusError < Dodopayments::APIError
|
92
|
+
# @api private
|
93
|
+
#
|
94
|
+
# @param url [URI::Generic]
|
95
|
+
# @param status [Integer]
|
96
|
+
# @param body [Object, nil]
|
97
|
+
# @param request [nil]
|
98
|
+
# @param response [nil]
|
99
|
+
# @param message [String, nil]
|
100
|
+
#
|
101
|
+
# @return [Dodopayments::APIStatusError]
|
102
|
+
def self.for(url:, status:, body:, request:, response:, message: nil)
|
103
|
+
kwargs = {url: url, status: status, body: body, request: request, response: response, message: message}
|
104
|
+
|
105
|
+
case status
|
106
|
+
in 400
|
107
|
+
Dodopayments::BadRequestError.new(**kwargs)
|
108
|
+
in 401
|
109
|
+
Dodopayments::AuthenticationError.new(**kwargs)
|
110
|
+
in 403
|
111
|
+
Dodopayments::PermissionDeniedError.new(**kwargs)
|
112
|
+
in 404
|
113
|
+
Dodopayments::NotFoundError.new(**kwargs)
|
114
|
+
in 409
|
115
|
+
Dodopayments::ConflictError.new(**kwargs)
|
116
|
+
in 422
|
117
|
+
Dodopayments::UnprocessableEntityError.new(**kwargs)
|
118
|
+
in 429
|
119
|
+
Dodopayments::RateLimitError.new(**kwargs)
|
120
|
+
in (500..)
|
121
|
+
Dodopayments::InternalServerError.new(**kwargs)
|
122
|
+
else
|
123
|
+
Dodopayments::APIStatusError.new(**kwargs)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
# @!parse
|
128
|
+
# # @return [Integer]
|
129
|
+
# attr_accessor :status
|
130
|
+
|
131
|
+
# @api private
|
132
|
+
#
|
133
|
+
# @param url [URI::Generic]
|
134
|
+
# @param status [Integer]
|
135
|
+
# @param body [Object, nil]
|
136
|
+
# @param request [nil]
|
137
|
+
# @param response [nil]
|
138
|
+
# @param message [String, nil]
|
139
|
+
def initialize(url:, status:, body:, request:, response:, message: nil)
|
140
|
+
message ||= {url: url.to_s, status: status, body: body}
|
141
|
+
super(
|
142
|
+
url: url,
|
143
|
+
status: status,
|
144
|
+
body: body,
|
145
|
+
request: request,
|
146
|
+
response: response,
|
147
|
+
message: message&.to_s
|
148
|
+
)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
class BadRequestError < Dodopayments::APIStatusError
|
153
|
+
HTTP_STATUS = 400
|
154
|
+
end
|
155
|
+
|
156
|
+
class AuthenticationError < Dodopayments::APIStatusError
|
157
|
+
HTTP_STATUS = 401
|
158
|
+
end
|
159
|
+
|
160
|
+
class PermissionDeniedError < Dodopayments::APIStatusError
|
161
|
+
HTTP_STATUS = 403
|
162
|
+
end
|
163
|
+
|
164
|
+
class NotFoundError < Dodopayments::APIStatusError
|
165
|
+
HTTP_STATUS = 404
|
166
|
+
end
|
167
|
+
|
168
|
+
class ConflictError < Dodopayments::APIStatusError
|
169
|
+
HTTP_STATUS = 409
|
170
|
+
end
|
171
|
+
|
172
|
+
class UnprocessableEntityError < Dodopayments::APIStatusError
|
173
|
+
HTTP_STATUS = 422
|
174
|
+
end
|
175
|
+
|
176
|
+
class RateLimitError < Dodopayments::APIStatusError
|
177
|
+
HTTP_STATUS = 429
|
178
|
+
end
|
179
|
+
|
180
|
+
class InternalServerError < Dodopayments::APIStatusError
|
181
|
+
HTTP_STATUS = (500..)
|
182
|
+
end
|
183
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
module Models
|
5
|
+
class AttachExistingCustomer < Dodopayments::BaseModel
|
6
|
+
# @!attribute customer_id
|
7
|
+
#
|
8
|
+
# @return [String]
|
9
|
+
required :customer_id, String
|
10
|
+
|
11
|
+
# @!parse
|
12
|
+
# # @param customer_id [String]
|
13
|
+
# #
|
14
|
+
# def initialize(customer_id:, **) = super
|
15
|
+
|
16
|
+
# def initialize: (Hash | Dodopayments::BaseModel) -> void
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
module Models
|
5
|
+
class BillingAddress < Dodopayments::BaseModel
|
6
|
+
# @!attribute city
|
7
|
+
# City name
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
required :city, String
|
11
|
+
|
12
|
+
# @!attribute country
|
13
|
+
# ISO country code alpha2 variant
|
14
|
+
#
|
15
|
+
# @return [Symbol, Dodopayments::Models::CountryCode]
|
16
|
+
required :country, enum: -> { Dodopayments::Models::CountryCode }
|
17
|
+
|
18
|
+
# @!attribute state
|
19
|
+
# State or province name
|
20
|
+
#
|
21
|
+
# @return [String]
|
22
|
+
required :state, String
|
23
|
+
|
24
|
+
# @!attribute street
|
25
|
+
# Street address including house number and unit/apartment if applicable
|
26
|
+
#
|
27
|
+
# @return [String]
|
28
|
+
required :street, String
|
29
|
+
|
30
|
+
# @!attribute zipcode
|
31
|
+
# Postal code or ZIP code
|
32
|
+
#
|
33
|
+
# @return [String]
|
34
|
+
required :zipcode, String
|
35
|
+
|
36
|
+
# @!parse
|
37
|
+
# # @param city [String]
|
38
|
+
# # @param country [Symbol, Dodopayments::Models::CountryCode]
|
39
|
+
# # @param state [String]
|
40
|
+
# # @param street [String]
|
41
|
+
# # @param zipcode [String]
|
42
|
+
# #
|
43
|
+
# def initialize(city:, country:, state:, street:, zipcode:, **) = super
|
44
|
+
|
45
|
+
# def initialize: (Hash | Dodopayments::BaseModel) -> void
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|