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.
Files changed (326) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +154 -0
  3. data/lib/dodopayments/base_client.rb +453 -0
  4. data/lib/dodopayments/base_model.rb +1217 -0
  5. data/lib/dodopayments/base_page.rb +62 -0
  6. data/lib/dodopayments/client.rb +147 -0
  7. data/lib/dodopayments/default_page_number_pagination.rb +97 -0
  8. data/lib/dodopayments/errors.rb +183 -0
  9. data/lib/dodopayments/extern.rb +9 -0
  10. data/lib/dodopayments/models/attach_existing_customer.rb +19 -0
  11. data/lib/dodopayments/models/billing_address.rb +48 -0
  12. data/lib/dodopayments/models/country_code.rb +262 -0
  13. data/lib/dodopayments/models/create_new_customer.rb +44 -0
  14. data/lib/dodopayments/models/customer.rb +49 -0
  15. data/lib/dodopayments/models/customer_create_params.rb +36 -0
  16. data/lib/dodopayments/models/customer_limited_details.rb +34 -0
  17. data/lib/dodopayments/models/customer_list_params.rb +32 -0
  18. data/lib/dodopayments/models/customer_portal_session.rb +19 -0
  19. data/lib/dodopayments/models/customer_request.rb +18 -0
  20. data/lib/dodopayments/models/customer_retrieve_params.rb +18 -0
  21. data/lib/dodopayments/models/customer_update_params.rb +30 -0
  22. data/lib/dodopayments/models/customers/customer_portal_create_params.rb +27 -0
  23. data/lib/dodopayments/models/discount.rb +108 -0
  24. data/lib/dodopayments/models/discount_create_params.rb +87 -0
  25. data/lib/dodopayments/models/discount_delete_params.rb +18 -0
  26. data/lib/dodopayments/models/discount_list_params.rb +32 -0
  27. data/lib/dodopayments/models/discount_retrieve_params.rb +18 -0
  28. data/lib/dodopayments/models/discount_type.rb +12 -0
  29. data/lib/dodopayments/models/discount_update_params.rb +82 -0
  30. data/lib/dodopayments/models/dispute.rb +80 -0
  31. data/lib/dodopayments/models/dispute_list_params.rb +79 -0
  32. data/lib/dodopayments/models/dispute_retrieve_params.rb +18 -0
  33. data/lib/dodopayments/models/dispute_stage.rb +14 -0
  34. data/lib/dodopayments/models/dispute_status.rb +18 -0
  35. data/lib/dodopayments/models/intent_status.rb +22 -0
  36. data/lib/dodopayments/models/invoices/payment_retrieve_params.rb +20 -0
  37. data/lib/dodopayments/models/license_activate_params.rb +30 -0
  38. data/lib/dodopayments/models/license_deactivate_params.rb +30 -0
  39. data/lib/dodopayments/models/license_key.rb +113 -0
  40. data/lib/dodopayments/models/license_key_duration.rb +25 -0
  41. data/lib/dodopayments/models/license_key_instance.rb +43 -0
  42. data/lib/dodopayments/models/license_key_instance_list_params.rb +39 -0
  43. data/lib/dodopayments/models/license_key_instance_retrieve_params.rb +18 -0
  44. data/lib/dodopayments/models/license_key_instance_update_params.rb +24 -0
  45. data/lib/dodopayments/models/license_key_list_params.rb +53 -0
  46. data/lib/dodopayments/models/license_key_retrieve_params.rb +18 -0
  47. data/lib/dodopayments/models/license_key_status.rb +14 -0
  48. data/lib/dodopayments/models/license_key_update_params.rb +42 -0
  49. data/lib/dodopayments/models/license_validate_params.rb +30 -0
  50. data/lib/dodopayments/models/license_validate_response.rb +19 -0
  51. data/lib/dodopayments/models/misc_list_supported_countries_params.rb +18 -0
  52. data/lib/dodopayments/models/misc_list_supported_countries_response.rb +7 -0
  53. data/lib/dodopayments/models/one_time_product_cart_item.rb +33 -0
  54. data/lib/dodopayments/models/payment.rb +339 -0
  55. data/lib/dodopayments/models/payment_create_params.rb +90 -0
  56. data/lib/dodopayments/models/payment_create_response.rb +82 -0
  57. data/lib/dodopayments/models/payment_list_params.rb +79 -0
  58. data/lib/dodopayments/models/payment_list_response.rb +238 -0
  59. data/lib/dodopayments/models/payment_retrieve_params.rb +18 -0
  60. data/lib/dodopayments/models/payout_list_params.rb +32 -0
  61. data/lib/dodopayments/models/payout_list_response.rb +295 -0
  62. data/lib/dodopayments/models/price.rb +512 -0
  63. data/lib/dodopayments/models/product.rb +149 -0
  64. data/lib/dodopayments/models/product_create_params.rb +107 -0
  65. data/lib/dodopayments/models/product_delete_params.rb +18 -0
  66. data/lib/dodopayments/models/product_list_params.rb +54 -0
  67. data/lib/dodopayments/models/product_list_response.rb +293 -0
  68. data/lib/dodopayments/models/product_retrieve_params.rb +18 -0
  69. data/lib/dodopayments/models/product_unarchive_params.rb +18 -0
  70. data/lib/dodopayments/models/product_update_params.rb +124 -0
  71. data/lib/dodopayments/models/products/image_update_params.rb +26 -0
  72. data/lib/dodopayments/models/products/image_update_response.rb +27 -0
  73. data/lib/dodopayments/models/refund.rb +218 -0
  74. data/lib/dodopayments/models/refund_create_params.rb +40 -0
  75. data/lib/dodopayments/models/refund_list_params.rb +71 -0
  76. data/lib/dodopayments/models/refund_retrieve_params.rb +18 -0
  77. data/lib/dodopayments/models/refund_status.rb +15 -0
  78. data/lib/dodopayments/models/subscription.rb +309 -0
  79. data/lib/dodopayments/models/subscription_create_params.rb +106 -0
  80. data/lib/dodopayments/models/subscription_create_response.rb +73 -0
  81. data/lib/dodopayments/models/subscription_list_params.rb +71 -0
  82. data/lib/dodopayments/models/subscription_retrieve_params.rb +18 -0
  83. data/lib/dodopayments/models/subscription_status.rb +18 -0
  84. data/lib/dodopayments/models/subscription_update_params.rb +30 -0
  85. data/lib/dodopayments/models/time_interval.rb +15 -0
  86. data/lib/dodopayments/models/webhook_event.rb +73 -0
  87. data/lib/dodopayments/models/webhook_event_list_params.rb +71 -0
  88. data/lib/dodopayments/models/webhook_event_retrieve_params.rb +18 -0
  89. data/lib/dodopayments/pooled_net_requester.rb +164 -0
  90. data/lib/dodopayments/request_options.rb +110 -0
  91. data/lib/dodopayments/resources/customers/customer_portal.rb +34 -0
  92. data/lib/dodopayments/resources/customers.rb +97 -0
  93. data/lib/dodopayments/resources/discounts.rb +154 -0
  94. data/lib/dodopayments/resources/disputes.rb +59 -0
  95. data/lib/dodopayments/resources/invoices/payments.rb +30 -0
  96. data/lib/dodopayments/resources/invoices.rb +16 -0
  97. data/lib/dodopayments/resources/license_key_instances.rb +71 -0
  98. data/lib/dodopayments/resources/license_keys.rb +82 -0
  99. data/lib/dodopayments/resources/licenses.rb +72 -0
  100. data/lib/dodopayments/resources/misc.rb +26 -0
  101. data/lib/dodopayments/resources/payments.rb +93 -0
  102. data/lib/dodopayments/resources/payouts.rb +33 -0
  103. data/lib/dodopayments/resources/products/images.rb +34 -0
  104. data/lib/dodopayments/resources/products.rb +176 -0
  105. data/lib/dodopayments/resources/refunds.rb +80 -0
  106. data/lib/dodopayments/resources/subscriptions.rb +117 -0
  107. data/lib/dodopayments/resources/webhook_events.rb +57 -0
  108. data/lib/dodopayments/util.rb +717 -0
  109. data/lib/dodopayments/version.rb +5 -0
  110. data/lib/dodopayments.rb +128 -0
  111. data/manifest.yaml +14 -0
  112. data/rbi/lib/dodopayments/base_client.rbi +186 -0
  113. data/rbi/lib/dodopayments/base_model.rbi +606 -0
  114. data/rbi/lib/dodopayments/base_page.rbi +40 -0
  115. data/rbi/lib/dodopayments/client.rbi +117 -0
  116. data/rbi/lib/dodopayments/default_page_number_pagination.rbi +17 -0
  117. data/rbi/lib/dodopayments/errors.rbi +179 -0
  118. data/rbi/lib/dodopayments/extern.rbi +8 -0
  119. data/rbi/lib/dodopayments/models/attach_existing_customer.rbi +23 -0
  120. data/rbi/lib/dodopayments/models/billing_address.rbi +65 -0
  121. data/rbi/lib/dodopayments/models/country_code.rbi +266 -0
  122. data/rbi/lib/dodopayments/models/create_new_customer.rbi +61 -0
  123. data/rbi/lib/dodopayments/models/customer.rbi +85 -0
  124. data/rbi/lib/dodopayments/models/customer_create_params.rbi +60 -0
  125. data/rbi/lib/dodopayments/models/customer_limited_details.rbi +42 -0
  126. data/rbi/lib/dodopayments/models/customer_list_params.rbi +52 -0
  127. data/rbi/lib/dodopayments/models/customer_portal_session.rbi +23 -0
  128. data/rbi/lib/dodopayments/models/customer_request.rbi +15 -0
  129. data/rbi/lib/dodopayments/models/customer_retrieve_params.rbi +21 -0
  130. data/rbi/lib/dodopayments/models/customer_update_params.rbi +50 -0
  131. data/rbi/lib/dodopayments/models/customers/customer_portal_create_params.rbi +37 -0
  132. data/rbi/lib/dodopayments/models/discount.rbi +161 -0
  133. data/rbi/lib/dodopayments/models/discount_create_params.rbi +124 -0
  134. data/rbi/lib/dodopayments/models/discount_delete_params.rbi +21 -0
  135. data/rbi/lib/dodopayments/models/discount_list_params.rbi +52 -0
  136. data/rbi/lib/dodopayments/models/discount_retrieve_params.rbi +21 -0
  137. data/rbi/lib/dodopayments/models/discount_type.rbi +17 -0
  138. data/rbi/lib/dodopayments/models/discount_update_params.rbi +119 -0
  139. data/rbi/lib/dodopayments/models/dispute.rbi +112 -0
  140. data/rbi/lib/dodopayments/models/dispute_list_params.rbi +116 -0
  141. data/rbi/lib/dodopayments/models/dispute_retrieve_params.rbi +21 -0
  142. data/rbi/lib/dodopayments/models/dispute_stage.rbi +19 -0
  143. data/rbi/lib/dodopayments/models/dispute_status.rbi +23 -0
  144. data/rbi/lib/dodopayments/models/intent_status.rbi +27 -0
  145. data/rbi/lib/dodopayments/models/invoices/payment_retrieve_params.rbi +23 -0
  146. data/rbi/lib/dodopayments/models/license_activate_params.rbi +43 -0
  147. data/rbi/lib/dodopayments/models/license_deactivate_params.rbi +50 -0
  148. data/rbi/lib/dodopayments/models/license_key.rbi +170 -0
  149. data/rbi/lib/dodopayments/models/license_key_duration.rbi +31 -0
  150. data/rbi/lib/dodopayments/models/license_key_instance.rbi +68 -0
  151. data/rbi/lib/dodopayments/models/license_key_instance_list_params.rbi +63 -0
  152. data/rbi/lib/dodopayments/models/license_key_instance_retrieve_params.rbi +21 -0
  153. data/rbi/lib/dodopayments/models/license_key_instance_update_params.rbi +35 -0
  154. data/rbi/lib/dodopayments/models/license_key_list_params.rbi +85 -0
  155. data/rbi/lib/dodopayments/models/license_key_retrieve_params.rbi +21 -0
  156. data/rbi/lib/dodopayments/models/license_key_status.rbi +19 -0
  157. data/rbi/lib/dodopayments/models/license_key_update_params.rbi +66 -0
  158. data/rbi/lib/dodopayments/models/license_validate_params.rbi +50 -0
  159. data/rbi/lib/dodopayments/models/license_validate_response.rbi +23 -0
  160. data/rbi/lib/dodopayments/models/misc_list_supported_countries_params.rbi +21 -0
  161. data/rbi/lib/dodopayments/models/misc_list_supported_countries_response.rbi +7 -0
  162. data/rbi/lib/dodopayments/models/one_time_product_cart_item.rbi +43 -0
  163. data/rbi/lib/dodopayments/models/payment.rbi +439 -0
  164. data/rbi/lib/dodopayments/models/payment_create_params.rbi +133 -0
  165. data/rbi/lib/dodopayments/models/payment_create_response.rbi +127 -0
  166. data/rbi/lib/dodopayments/models/payment_list_params.rbi +116 -0
  167. data/rbi/lib/dodopayments/models/payment_list_response.rbi +295 -0
  168. data/rbi/lib/dodopayments/models/payment_retrieve_params.rbi +21 -0
  169. data/rbi/lib/dodopayments/models/payout_list_params.rbi +52 -0
  170. data/rbi/lib/dodopayments/models/payout_list_response.rbi +374 -0
  171. data/rbi/lib/dodopayments/models/price.rbi +603 -0
  172. data/rbi/lib/dodopayments/models/product.rbi +228 -0
  173. data/rbi/lib/dodopayments/models/product_create_params.rbi +162 -0
  174. data/rbi/lib/dodopayments/models/product_delete_params.rbi +21 -0
  175. data/rbi/lib/dodopayments/models/product_list_params.rbi +78 -0
  176. data/rbi/lib/dodopayments/models/product_list_response.rbi +374 -0
  177. data/rbi/lib/dodopayments/models/product_retrieve_params.rbi +21 -0
  178. data/rbi/lib/dodopayments/models/product_unarchive_params.rbi +21 -0
  179. data/rbi/lib/dodopayments/models/product_update_params.rbi +191 -0
  180. data/rbi/lib/dodopayments/models/products/image_update_params.rbi +41 -0
  181. data/rbi/lib/dodopayments/models/products/image_update_response.rbi +33 -0
  182. data/rbi/lib/dodopayments/models/refund.rbi +267 -0
  183. data/rbi/lib/dodopayments/models/refund_create_params.rbi +64 -0
  184. data/rbi/lib/dodopayments/models/refund_list_params.rbi +104 -0
  185. data/rbi/lib/dodopayments/models/refund_retrieve_params.rbi +21 -0
  186. data/rbi/lib/dodopayments/models/refund_status.rbi +20 -0
  187. data/rbi/lib/dodopayments/models/subscription.rbi +397 -0
  188. data/rbi/lib/dodopayments/models/subscription_create_params.rbi +154 -0
  189. data/rbi/lib/dodopayments/models/subscription_create_response.rbi +113 -0
  190. data/rbi/lib/dodopayments/models/subscription_list_params.rbi +104 -0
  191. data/rbi/lib/dodopayments/models/subscription_retrieve_params.rbi +21 -0
  192. data/rbi/lib/dodopayments/models/subscription_status.rbi +23 -0
  193. data/rbi/lib/dodopayments/models/subscription_update_params.rbi +50 -0
  194. data/rbi/lib/dodopayments/models/time_interval.rbi +20 -0
  195. data/rbi/lib/dodopayments/models/webhook_event.rbi +114 -0
  196. data/rbi/lib/dodopayments/models/webhook_event_list_params.rbi +104 -0
  197. data/rbi/lib/dodopayments/models/webhook_event_retrieve_params.rbi +21 -0
  198. data/rbi/lib/dodopayments/pooled_net_requester.rbi +47 -0
  199. data/rbi/lib/dodopayments/request_options.rbi +109 -0
  200. data/rbi/lib/dodopayments/resources/customers/customer_portal.rbi +30 -0
  201. data/rbi/lib/dodopayments/resources/customers.rbi +76 -0
  202. data/rbi/lib/dodopayments/resources/discounts.rbi +139 -0
  203. data/rbi/lib/dodopayments/resources/disputes.rbi +57 -0
  204. data/rbi/lib/dodopayments/resources/invoices/payments.rbi +23 -0
  205. data/rbi/lib/dodopayments/resources/invoices.rbi +15 -0
  206. data/rbi/lib/dodopayments/resources/license_key_instances.rbi +61 -0
  207. data/rbi/lib/dodopayments/resources/license_keys.rbi +77 -0
  208. data/rbi/lib/dodopayments/resources/licenses.rbi +44 -0
  209. data/rbi/lib/dodopayments/resources/misc.rbi +18 -0
  210. data/rbi/lib/dodopayments/resources/payments.rbi +91 -0
  211. data/rbi/lib/dodopayments/resources/payouts.rbi +28 -0
  212. data/rbi/lib/dodopayments/resources/products/images.rbi +29 -0
  213. data/rbi/lib/dodopayments/resources/products.rbi +164 -0
  214. data/rbi/lib/dodopayments/resources/refunds.rbi +75 -0
  215. data/rbi/lib/dodopayments/resources/subscriptions.rbi +112 -0
  216. data/rbi/lib/dodopayments/resources/webhook_events.rbi +50 -0
  217. data/rbi/lib/dodopayments/util.rbi +270 -0
  218. data/rbi/lib/dodopayments/version.rbi +5 -0
  219. data/sig/dodopayments/base_client.rbs +103 -0
  220. data/sig/dodopayments/base_model.rbs +246 -0
  221. data/sig/dodopayments/base_page.rbs +20 -0
  222. data/sig/dodopayments/client.rbs +58 -0
  223. data/sig/dodopayments/default_page_number_pagination.rbs +7 -0
  224. data/sig/dodopayments/errors.rbs +99 -0
  225. data/sig/dodopayments/extern.rbs +4 -0
  226. data/sig/dodopayments/models/attach_existing_customer.rbs +18 -0
  227. data/sig/dodopayments/models/billing_address.rbs +38 -0
  228. data/sig/dodopayments/models/country_code.rbs +508 -0
  229. data/sig/dodopayments/models/create_new_customer.rbs +37 -0
  230. data/sig/dodopayments/models/customer.rbs +42 -0
  231. data/sig/dodopayments/models/customer_create_params.rbs +32 -0
  232. data/sig/dodopayments/models/customer_limited_details.rbs +23 -0
  233. data/sig/dodopayments/models/customer_list_params.rbs +29 -0
  234. data/sig/dodopayments/models/customer_portal_session.rbs +18 -0
  235. data/sig/dodopayments/models/customer_request.rbs +11 -0
  236. data/sig/dodopayments/models/customer_retrieve_params.rbs +19 -0
  237. data/sig/dodopayments/models/customer_update_params.rbs +29 -0
  238. data/sig/dodopayments/models/customers/customer_portal_create_params.rbs +27 -0
  239. data/sig/dodopayments/models/discount.rbs +62 -0
  240. data/sig/dodopayments/models/discount_create_params.rbs +52 -0
  241. data/sig/dodopayments/models/discount_delete_params.rbs +19 -0
  242. data/sig/dodopayments/models/discount_list_params.rbs +29 -0
  243. data/sig/dodopayments/models/discount_retrieve_params.rbs +19 -0
  244. data/sig/dodopayments/models/discount_type.rbs +11 -0
  245. data/sig/dodopayments/models/discount_update_params.rbs +52 -0
  246. data/sig/dodopayments/models/dispute.rbs +50 -0
  247. data/sig/dodopayments/models/dispute_list_params.rbs +52 -0
  248. data/sig/dodopayments/models/dispute_retrieve_params.rbs +19 -0
  249. data/sig/dodopayments/models/dispute_stage.rbs +13 -0
  250. data/sig/dodopayments/models/dispute_status.rbs +24 -0
  251. data/sig/dodopayments/models/intent_status.rbs +32 -0
  252. data/sig/dodopayments/models/invoices/payment_retrieve_params.rbs +21 -0
  253. data/sig/dodopayments/models/license_activate_params.rbs +28 -0
  254. data/sig/dodopayments/models/license_deactivate_params.rbs +29 -0
  255. data/sig/dodopayments/models/license_key.rbs +66 -0
  256. data/sig/dodopayments/models/license_key_duration.rbs +21 -0
  257. data/sig/dodopayments/models/license_key_instance.rbs +39 -0
  258. data/sig/dodopayments/models/license_key_instance_list_params.rbs +32 -0
  259. data/sig/dodopayments/models/license_key_instance_retrieve_params.rbs +20 -0
  260. data/sig/dodopayments/models/license_key_instance_update_params.rbs +22 -0
  261. data/sig/dodopayments/models/license_key_list_params.rbs +44 -0
  262. data/sig/dodopayments/models/license_key_retrieve_params.rbs +19 -0
  263. data/sig/dodopayments/models/license_key_status.rbs +13 -0
  264. data/sig/dodopayments/models/license_key_update_params.rbs +32 -0
  265. data/sig/dodopayments/models/license_validate_params.rbs +29 -0
  266. data/sig/dodopayments/models/license_validate_response.rbs +18 -0
  267. data/sig/dodopayments/models/misc_list_supported_countries_params.rbs +20 -0
  268. data/sig/dodopayments/models/misc_list_supported_countries_response.rbs +8 -0
  269. data/sig/dodopayments/models/one_time_product_cart_item.rbs +23 -0
  270. data/sig/dodopayments/models/payment.rbs +408 -0
  271. data/sig/dodopayments/models/payment_create_params.rbs +58 -0
  272. data/sig/dodopayments/models/payment_create_response.rbs +51 -0
  273. data/sig/dodopayments/models/payment_list_params.rbs +52 -0
  274. data/sig/dodopayments/models/payment_list_response.rbs +356 -0
  275. data/sig/dodopayments/models/payment_retrieve_params.rbs +19 -0
  276. data/sig/dodopayments/models/payout_list_params.rbs +29 -0
  277. data/sig/dodopayments/models/payout_list_response.rbs +386 -0
  278. data/sig/dodopayments/models/price.rbs +717 -0
  279. data/sig/dodopayments/models/product.rbs +89 -0
  280. data/sig/dodopayments/models/product_create_params.rbs +71 -0
  281. data/sig/dodopayments/models/product_delete_params.rbs +19 -0
  282. data/sig/dodopayments/models/product_list_params.rbs +42 -0
  283. data/sig/dodopayments/models/product_list_response.rbs +379 -0
  284. data/sig/dodopayments/models/product_retrieve_params.rbs +19 -0
  285. data/sig/dodopayments/models/product_unarchive_params.rbs +19 -0
  286. data/sig/dodopayments/models/product_update_params.rbs +75 -0
  287. data/sig/dodopayments/models/products/image_update_params.rbs +27 -0
  288. data/sig/dodopayments/models/products/image_update_response.rbs +22 -0
  289. data/sig/dodopayments/models/refund.rbs +345 -0
  290. data/sig/dodopayments/models/refund_create_params.rbs +32 -0
  291. data/sig/dodopayments/models/refund_list_params.rbs +48 -0
  292. data/sig/dodopayments/models/refund_retrieve_params.rbs +19 -0
  293. data/sig/dodopayments/models/refund_status.rbs +14 -0
  294. data/sig/dodopayments/models/subscription.rbs +387 -0
  295. data/sig/dodopayments/models/subscription_create_params.rbs +66 -0
  296. data/sig/dodopayments/models/subscription_create_response.rbs +47 -0
  297. data/sig/dodopayments/models/subscription_list_params.rbs +48 -0
  298. data/sig/dodopayments/models/subscription_retrieve_params.rbs +19 -0
  299. data/sig/dodopayments/models/subscription_status.rbs +18 -0
  300. data/sig/dodopayments/models/subscription_update_params.rbs +32 -0
  301. data/sig/dodopayments/models/time_interval.rbs +14 -0
  302. data/sig/dodopayments/models/webhook_event.rbs +50 -0
  303. data/sig/dodopayments/models/webhook_event_list_params.rbs +48 -0
  304. data/sig/dodopayments/models/webhook_event_retrieve_params.rbs +19 -0
  305. data/sig/dodopayments/pooled_net_requester.rbs +30 -0
  306. data/sig/dodopayments/request_options.rbs +46 -0
  307. data/sig/dodopayments/resources/customers/customer_portal.rbs +21 -0
  308. data/sig/dodopayments/resources/customers.rbs +55 -0
  309. data/sig/dodopayments/resources/discounts.rbs +73 -0
  310. data/sig/dodopayments/resources/disputes.rbs +33 -0
  311. data/sig/dodopayments/resources/invoices/payments.rbs +20 -0
  312. data/sig/dodopayments/resources/invoices.rbs +9 -0
  313. data/sig/dodopayments/resources/license_key_instances.rbs +42 -0
  314. data/sig/dodopayments/resources/license_keys.rbs +46 -0
  315. data/sig/dodopayments/resources/licenses.rbs +40 -0
  316. data/sig/dodopayments/resources/misc.rbs +16 -0
  317. data/sig/dodopayments/resources/payments.rbs +49 -0
  318. data/sig/dodopayments/resources/payouts.rbs +17 -0
  319. data/sig/dodopayments/resources/products/images.rbs +21 -0
  320. data/sig/dodopayments/resources/products.rbs +86 -0
  321. data/sig/dodopayments/resources/refunds.rbs +43 -0
  322. data/sig/dodopayments/resources/subscriptions.rbs +65 -0
  323. data/sig/dodopayments/resources/webhook_events.rbs +33 -0
  324. data/sig/dodopayments/util.rbs +136 -0
  325. data/sig/dodopayments/version.rbs +3 -0
  326. 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,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ # @api private
5
+ #
6
+ # @abstract
7
+ module Extern
8
+ end
9
+ 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