whop_sdk 0.0.2 → 0.0.3

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 (263) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +1 -1
  4. data/lib/whop_sdk/client.rb +20 -0
  5. data/lib/whop_sdk/internal/transport/pooled_net_requester.rb +30 -24
  6. data/lib/whop_sdk/models/assessment_question_types.rb +18 -0
  7. data/lib/whop_sdk/models/billing_reasons.rb +20 -0
  8. data/lib/whop_sdk/models/card_brands.rb +30 -0
  9. data/lib/whop_sdk/models/checkout_configuration.rb +10 -7
  10. data/lib/whop_sdk/models/checkout_configuration_create_params.rb +140 -3
  11. data/lib/whop_sdk/models/checkout_configuration_list_response.rb +10 -7
  12. data/lib/whop_sdk/models/course.rb +230 -0
  13. data/lib/whop_sdk/models/course_chapter.rb +72 -0
  14. data/lib/whop_sdk/models/course_chapter_create_params.rb +30 -0
  15. data/lib/whop_sdk/models/course_chapter_delete_params.rb +14 -0
  16. data/lib/whop_sdk/models/course_chapter_delete_response.rb +8 -0
  17. data/lib/whop_sdk/models/course_chapter_list_params.rb +54 -0
  18. data/lib/whop_sdk/models/course_chapter_list_response.rb +35 -0
  19. data/lib/whop_sdk/models/course_chapter_retrieve_params.rb +14 -0
  20. data/lib/whop_sdk/models/course_chapter_update_params.rb +22 -0
  21. data/lib/whop_sdk/models/course_create_params.rb +82 -0
  22. data/lib/whop_sdk/models/course_delete_params.rb +14 -0
  23. data/lib/whop_sdk/models/course_delete_response.rb +8 -0
  24. data/lib/whop_sdk/models/course_lesson_create_params.rb +54 -0
  25. data/lib/whop_sdk/models/course_lesson_delete_params.rb +14 -0
  26. data/lib/whop_sdk/models/course_lesson_delete_response.rb +8 -0
  27. data/lib/whop_sdk/models/course_lesson_list_params.rb +62 -0
  28. data/lib/whop_sdk/models/course_lesson_list_response.rb +71 -0
  29. data/lib/whop_sdk/models/course_lesson_retrieve_params.rb +14 -0
  30. data/lib/whop_sdk/models/course_lesson_update_params.rb +278 -0
  31. data/lib/whop_sdk/models/course_list_params.rb +62 -0
  32. data/lib/whop_sdk/models/course_list_response.rb +148 -0
  33. data/lib/whop_sdk/models/course_retrieve_params.rb +14 -0
  34. data/lib/whop_sdk/models/course_update_params.rb +197 -0
  35. data/lib/whop_sdk/models/experience_duplicate_params.rb +22 -0
  36. data/lib/whop_sdk/models/forum_post.rb +17 -1
  37. data/lib/whop_sdk/models/forum_post_list_response.rb +17 -1
  38. data/lib/whop_sdk/models/forum_post_update_params.rb +80 -0
  39. data/lib/whop_sdk/models/invoice.rb +6 -2
  40. data/lib/whop_sdk/models/invoice_list_item.rb +6 -2
  41. data/lib/whop_sdk/models/languages.rb +36 -0
  42. data/lib/whop_sdk/models/ledger_account_retrieve_response.rb +9 -0
  43. data/lib/whop_sdk/models/lesson.rb +365 -0
  44. data/lib/whop_sdk/models/lesson_types.rb +20 -0
  45. data/lib/whop_sdk/models/lesson_visibilities.rb +17 -0
  46. data/lib/whop_sdk/models/member_list_params.rb +9 -1
  47. data/lib/whop_sdk/models/membership.rb +31 -1
  48. data/lib/whop_sdk/models/membership_list_params.rb +16 -8
  49. data/lib/whop_sdk/models/membership_list_response.rb +31 -1
  50. data/lib/whop_sdk/models/message_update_params.rb +68 -0
  51. data/lib/whop_sdk/models/payment.rb +24 -21
  52. data/lib/whop_sdk/models/payment_list_params.rb +3 -18
  53. data/lib/whop_sdk/models/payment_list_response.rb +24 -21
  54. data/lib/whop_sdk/models/payment_method_types.rb +98 -0
  55. data/lib/whop_sdk/models/plan.rb +25 -1
  56. data/lib/whop_sdk/models/plan_create_params.rb +37 -3
  57. data/lib/whop_sdk/models/plan_list_response.rb +25 -1
  58. data/lib/whop_sdk/models/plan_update_params.rb +35 -1
  59. data/lib/whop_sdk/models/product.rb +11 -1
  60. data/lib/whop_sdk/models/product_create_params.rb +1 -45
  61. data/lib/whop_sdk/models/product_list_item.rb +14 -1
  62. data/lib/whop_sdk/models/product_update_params.rb +30 -1
  63. data/lib/whop_sdk/models/promo_code.rb +211 -0
  64. data/lib/whop_sdk/models/promo_code_create_params.rb +140 -0
  65. data/lib/whop_sdk/models/promo_code_delete_params.rb +14 -0
  66. data/lib/whop_sdk/models/promo_code_delete_response.rb +8 -0
  67. data/lib/whop_sdk/models/promo_code_list_params.rb +78 -0
  68. data/lib/whop_sdk/models/promo_code_list_response.rb +181 -0
  69. data/lib/whop_sdk/models/promo_code_retrieve_params.rb +14 -0
  70. data/lib/whop_sdk/models/promo_code_status.rb +17 -0
  71. data/lib/whop_sdk/models/promo_duration.rb +17 -0
  72. data/lib/whop_sdk/models/review_list_params.rb +70 -0
  73. data/lib/whop_sdk/models/review_list_response.rb +183 -0
  74. data/lib/whop_sdk/models/review_retrieve_params.rb +14 -0
  75. data/lib/whop_sdk/models/review_retrieve_response.rb +251 -0
  76. data/lib/whop_sdk/models/review_status.rb +17 -0
  77. data/lib/whop_sdk/models.rb +76 -0
  78. data/lib/whop_sdk/resources/checkout_configurations.rb +2 -0
  79. data/lib/whop_sdk/resources/course_chapters.rb +151 -0
  80. data/lib/whop_sdk/resources/course_lessons.rb +178 -0
  81. data/lib/whop_sdk/resources/courses.rb +178 -0
  82. data/lib/whop_sdk/resources/experiences.rb +33 -0
  83. data/lib/whop_sdk/resources/forum_posts.rb +33 -0
  84. data/lib/whop_sdk/resources/members.rb +3 -1
  85. data/lib/whop_sdk/resources/memberships.rb +6 -4
  86. data/lib/whop_sdk/resources/messages.rb +28 -0
  87. data/lib/whop_sdk/resources/payments.rb +1 -1
  88. data/lib/whop_sdk/resources/plans.rb +19 -3
  89. data/lib/whop_sdk/resources/products.rb +4 -6
  90. data/lib/whop_sdk/resources/promo_codes.rb +161 -0
  91. data/lib/whop_sdk/resources/reviews.rb +68 -0
  92. data/lib/whop_sdk/version.rb +1 -1
  93. data/lib/whop_sdk.rb +53 -0
  94. data/rbi/whop_sdk/client.rbi +15 -0
  95. data/rbi/whop_sdk/models/assessment_question_types.rbi +31 -0
  96. data/rbi/whop_sdk/models/billing_reasons.rbi +27 -0
  97. data/rbi/whop_sdk/models/card_brands.rbi +35 -0
  98. data/rbi/whop_sdk/models/checkout_configuration.rbi +4 -2
  99. data/rbi/whop_sdk/models/checkout_configuration_create_params.rbi +183 -2
  100. data/rbi/whop_sdk/models/checkout_configuration_list_response.rbi +4 -2
  101. data/rbi/whop_sdk/models/course.rbi +313 -0
  102. data/rbi/whop_sdk/models/course_chapter.rbi +101 -0
  103. data/rbi/whop_sdk/models/course_chapter_create_params.rbi +51 -0
  104. data/rbi/whop_sdk/models/course_chapter_delete_params.rbi +27 -0
  105. data/rbi/whop_sdk/models/course_chapter_delete_response.rbi +8 -0
  106. data/rbi/whop_sdk/models/course_chapter_list_params.rbi +75 -0
  107. data/rbi/whop_sdk/models/course_chapter_list_response.rbi +47 -0
  108. data/rbi/whop_sdk/models/course_chapter_retrieve_params.rbi +30 -0
  109. data/rbi/whop_sdk/models/course_chapter_update_params.rbi +40 -0
  110. data/rbi/whop_sdk/models/course_create_params.rbi +131 -0
  111. data/rbi/whop_sdk/models/course_delete_params.rbi +27 -0
  112. data/rbi/whop_sdk/models/course_delete_response.rbi +7 -0
  113. data/rbi/whop_sdk/models/course_lesson_create_params.rbi +75 -0
  114. data/rbi/whop_sdk/models/course_lesson_delete_params.rbi +27 -0
  115. data/rbi/whop_sdk/models/course_lesson_delete_response.rbi +8 -0
  116. data/rbi/whop_sdk/models/course_lesson_list_params.rbi +83 -0
  117. data/rbi/whop_sdk/models/course_lesson_list_response.rbi +91 -0
  118. data/rbi/whop_sdk/models/course_lesson_retrieve_params.rbi +27 -0
  119. data/rbi/whop_sdk/models/course_lesson_update_params.rbi +465 -0
  120. data/rbi/whop_sdk/models/course_list_params.rbi +83 -0
  121. data/rbi/whop_sdk/models/course_list_response.rbi +198 -0
  122. data/rbi/whop_sdk/models/course_retrieve_params.rbi +27 -0
  123. data/rbi/whop_sdk/models/course_update_params.rbi +293 -0
  124. data/rbi/whop_sdk/models/experience_duplicate_params.rbi +40 -0
  125. data/rbi/whop_sdk/models/forum_post.rbi +16 -0
  126. data/rbi/whop_sdk/models/forum_post_list_response.rbi +16 -0
  127. data/rbi/whop_sdk/models/forum_post_update_params.rbi +124 -0
  128. data/rbi/whop_sdk/models/invoice.rbi +4 -2
  129. data/rbi/whop_sdk/models/invoice_list_item.rbi +4 -2
  130. data/rbi/whop_sdk/models/languages.rbi +40 -0
  131. data/rbi/whop_sdk/models/ledger_account_retrieve_response.rbi +45 -0
  132. data/rbi/whop_sdk/models/lesson.rbi +517 -0
  133. data/rbi/whop_sdk/models/lesson_types.rbi +25 -0
  134. data/rbi/whop_sdk/models/lesson_visibilities.rbi +23 -0
  135. data/rbi/whop_sdk/models/member_list_params.rbi +8 -0
  136. data/rbi/whop_sdk/models/membership.rbi +40 -0
  137. data/rbi/whop_sdk/models/membership_list_params.rbi +16 -8
  138. data/rbi/whop_sdk/models/membership_list_response.rbi +47 -0
  139. data/rbi/whop_sdk/models/message_update_params.rbi +114 -0
  140. data/rbi/whop_sdk/models/payment.rbi +32 -25
  141. data/rbi/whop_sdk/models/payment_list_params.rbi +3 -63
  142. data/rbi/whop_sdk/models/payment_list_response.rbi +32 -25
  143. data/rbi/whop_sdk/models/payment_method_types.rbi +116 -0
  144. data/rbi/whop_sdk/models/plan.rbi +24 -0
  145. data/rbi/whop_sdk/models/plan_create_params.rbi +38 -2
  146. data/rbi/whop_sdk/models/plan_list_response.rbi +24 -0
  147. data/rbi/whop_sdk/models/plan_update_params.rbi +36 -0
  148. data/rbi/whop_sdk/models/product.rbi +12 -0
  149. data/rbi/whop_sdk/models/product_create_params.rbi +0 -74
  150. data/rbi/whop_sdk/models/product_list_item.rbi +12 -0
  151. data/rbi/whop_sdk/models/product_update_params.rbi +59 -0
  152. data/rbi/whop_sdk/models/promo_code.rbi +248 -0
  153. data/rbi/whop_sdk/models/promo_code_create_params.rbi +161 -0
  154. data/rbi/whop_sdk/models/promo_code_delete_params.rbi +27 -0
  155. data/rbi/whop_sdk/models/promo_code_delete_response.rbi +8 -0
  156. data/rbi/whop_sdk/models/promo_code_list_params.rbi +99 -0
  157. data/rbi/whop_sdk/models/promo_code_list_response.rbi +222 -0
  158. data/rbi/whop_sdk/models/promo_code_retrieve_params.rbi +27 -0
  159. data/rbi/whop_sdk/models/promo_code_status.rbi +21 -0
  160. data/rbi/whop_sdk/models/promo_duration.rbi +21 -0
  161. data/rbi/whop_sdk/models/review_list_params.rbi +91 -0
  162. data/rbi/whop_sdk/models/review_list_response.rbi +243 -0
  163. data/rbi/whop_sdk/models/review_retrieve_params.rbi +27 -0
  164. data/rbi/whop_sdk/models/review_retrieve_response.rbi +354 -0
  165. data/rbi/whop_sdk/models/review_status.rbi +21 -0
  166. data/rbi/whop_sdk/models.rbi +76 -0
  167. data/rbi/whop_sdk/resources/checkout_configurations.rbi +2 -0
  168. data/rbi/whop_sdk/resources/course_chapters.rbi +115 -0
  169. data/rbi/whop_sdk/resources/course_lessons.rbi +163 -0
  170. data/rbi/whop_sdk/resources/courses.rbi +152 -0
  171. data/rbi/whop_sdk/resources/experiences.rbi +25 -0
  172. data/rbi/whop_sdk/resources/forum_posts.rbi +29 -0
  173. data/rbi/whop_sdk/resources/members.rbi +3 -0
  174. data/rbi/whop_sdk/resources/memberships.rbi +6 -3
  175. data/rbi/whop_sdk/resources/messages.rbi +25 -0
  176. data/rbi/whop_sdk/resources/payments.rbi +1 -3
  177. data/rbi/whop_sdk/resources/plans.rbi +29 -1
  178. data/rbi/whop_sdk/resources/products.rbi +4 -7
  179. data/rbi/whop_sdk/resources/promo_codes.rbi +147 -0
  180. data/rbi/whop_sdk/resources/reviews.rbi +56 -0
  181. data/sig/whop_sdk/client.rbs +10 -0
  182. data/sig/whop_sdk/models/assessment_question_types.rbs +17 -0
  183. data/sig/whop_sdk/models/billing_reasons.rbs +24 -0
  184. data/sig/whop_sdk/models/card_brands.rbs +44 -0
  185. data/sig/whop_sdk/models/checkout_configuration_create_params.rbs +87 -0
  186. data/sig/whop_sdk/models/course.rbs +171 -0
  187. data/sig/whop_sdk/models/course_chapter.rbs +49 -0
  188. data/sig/whop_sdk/models/course_chapter_create_params.rbs +28 -0
  189. data/sig/whop_sdk/models/course_chapter_delete_params.rbs +15 -0
  190. data/sig/whop_sdk/models/course_chapter_delete_response.rbs +5 -0
  191. data/sig/whop_sdk/models/course_chapter_list_params.rbs +46 -0
  192. data/sig/whop_sdk/models/course_chapter_list_response.rbs +18 -0
  193. data/sig/whop_sdk/models/course_chapter_retrieve_params.rbs +15 -0
  194. data/sig/whop_sdk/models/course_chapter_update_params.rbs +23 -0
  195. data/sig/whop_sdk/models/course_create_params.rbs +58 -0
  196. data/sig/whop_sdk/models/course_delete_params.rbs +15 -0
  197. data/sig/whop_sdk/models/course_delete_response.rbs +5 -0
  198. data/sig/whop_sdk/models/course_lesson_create_params.rbs +46 -0
  199. data/sig/whop_sdk/models/course_lesson_delete_params.rbs +15 -0
  200. data/sig/whop_sdk/models/course_lesson_delete_response.rbs +5 -0
  201. data/sig/whop_sdk/models/course_lesson_list_params.rbs +51 -0
  202. data/sig/whop_sdk/models/course_lesson_list_response.rbs +50 -0
  203. data/sig/whop_sdk/models/course_lesson_retrieve_params.rbs +15 -0
  204. data/sig/whop_sdk/models/course_lesson_update_params.rbs +162 -0
  205. data/sig/whop_sdk/models/course_list_params.rbs +51 -0
  206. data/sig/whop_sdk/models/course_list_response.rbs +102 -0
  207. data/sig/whop_sdk/models/course_retrieve_params.rbs +15 -0
  208. data/sig/whop_sdk/models/course_update_params.rbs +137 -0
  209. data/sig/whop_sdk/models/experience_duplicate_params.rbs +23 -0
  210. data/sig/whop_sdk/models/forum_post.rbs +10 -0
  211. data/sig/whop_sdk/models/forum_post_list_response.rbs +10 -0
  212. data/sig/whop_sdk/models/forum_post_update_params.rbs +53 -0
  213. data/sig/whop_sdk/models/languages.rbs +56 -0
  214. data/sig/whop_sdk/models/ledger_account_retrieve_response.rbs +20 -1
  215. data/sig/whop_sdk/models/lesson.rbs +248 -0
  216. data/sig/whop_sdk/models/lesson_types.rbs +19 -0
  217. data/sig/whop_sdk/models/lesson_visibilities.rbs +14 -0
  218. data/sig/whop_sdk/models/member_list_params.rbs +6 -1
  219. data/sig/whop_sdk/models/membership.rbs +17 -0
  220. data/sig/whop_sdk/models/membership_list_params.rbs +11 -6
  221. data/sig/whop_sdk/models/membership_list_response.rbs +17 -0
  222. data/sig/whop_sdk/models/message_update_params.rbs +48 -0
  223. data/sig/whop_sdk/models/payment.rbs +12 -12
  224. data/sig/whop_sdk/models/payment_list_params.rbs +4 -25
  225. data/sig/whop_sdk/models/payment_list_response.rbs +12 -12
  226. data/sig/whop_sdk/models/payment_method_types.rbs +180 -0
  227. data/sig/whop_sdk/models/plan.rbs +15 -0
  228. data/sig/whop_sdk/models/plan_create_params.rbs +20 -0
  229. data/sig/whop_sdk/models/plan_list_response.rbs +15 -0
  230. data/sig/whop_sdk/models/plan_update_params.rbs +20 -0
  231. data/sig/whop_sdk/models/product.rbs +5 -0
  232. data/sig/whop_sdk/models/product_create_params.rbs +0 -22
  233. data/sig/whop_sdk/models/product_list_item.rbs +5 -0
  234. data/sig/whop_sdk/models/product_update_params.rbs +17 -0
  235. data/sig/whop_sdk/models/promo_code.rbs +134 -0
  236. data/sig/whop_sdk/models/promo_code_create_params.rbs +96 -0
  237. data/sig/whop_sdk/models/promo_code_delete_params.rbs +15 -0
  238. data/sig/whop_sdk/models/promo_code_delete_response.rbs +5 -0
  239. data/sig/whop_sdk/models/promo_code_list_params.rbs +61 -0
  240. data/sig/whop_sdk/models/promo_code_list_response.rbs +117 -0
  241. data/sig/whop_sdk/models/promo_code_retrieve_params.rbs +15 -0
  242. data/sig/whop_sdk/models/promo_code_status.rbs +15 -0
  243. data/sig/whop_sdk/models/promo_duration.rbs +15 -0
  244. data/sig/whop_sdk/models/review_list_params.rbs +56 -0
  245. data/sig/whop_sdk/models/review_list_response.rbs +116 -0
  246. data/sig/whop_sdk/models/review_retrieve_params.rbs +15 -0
  247. data/sig/whop_sdk/models/review_retrieve_response.rbs +152 -0
  248. data/sig/whop_sdk/models/review_status.rbs +15 -0
  249. data/sig/whop_sdk/models.rbs +76 -0
  250. data/sig/whop_sdk/resources/course_chapters.rbs +35 -0
  251. data/sig/whop_sdk/resources/course_lessons.rbs +47 -0
  252. data/sig/whop_sdk/resources/courses.rbs +47 -0
  253. data/sig/whop_sdk/resources/experiences.rbs +6 -0
  254. data/sig/whop_sdk/resources/forum_posts.rbs +9 -0
  255. data/sig/whop_sdk/resources/members.rbs +1 -0
  256. data/sig/whop_sdk/resources/memberships.rbs +2 -1
  257. data/sig/whop_sdk/resources/messages.rbs +8 -0
  258. data/sig/whop_sdk/resources/payments.rbs +1 -1
  259. data/sig/whop_sdk/resources/plans.rbs +8 -0
  260. data/sig/whop_sdk/resources/products.rbs +1 -2
  261. data/sig/whop_sdk/resources/promo_codes.rbs +45 -0
  262. data/sig/whop_sdk/resources/reviews.rbs +23 -0
  263. metadata +189 -2
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Resources
5
+ class PromoCodes
6
+ # Some parameter documentations has been truncated, see
7
+ # {WhopSDK::Models::PromoCodeCreateParams} for more details.
8
+ #
9
+ # Create a new promo code for a product or plan
10
+ #
11
+ # Required permissions:
12
+ #
13
+ # - `promo_code:create`
14
+ # - `access_pass:basic:read`
15
+ #
16
+ # @overload create(amount_off:, base_currency:, code:, company_id:, new_users_only:, promo_duration_months:, promo_type:, churned_users_only: nil, existing_memberships_only: nil, expires_at: nil, one_per_customer: nil, plan_ids: nil, product_id: nil, stock: nil, unlimited_stock: nil, request_options: {})
17
+ #
18
+ # @param amount_off [Float] The amount off (% or flat amount) for the promo.
19
+ #
20
+ # @param base_currency [Symbol, WhopSDK::Models::Currency] The monetary currency of the promo code.
21
+ #
22
+ # @param code [String] The specific code used to apply the promo at checkout.
23
+ #
24
+ # @param company_id [String] The id of the company to create the promo code for.
25
+ #
26
+ # @param new_users_only [Boolean] Restricts promo use to only users who have never purchased from the company befo
27
+ #
28
+ # @param promo_duration_months [Integer] The number of months this promo code is applied and valid for.
29
+ #
30
+ # @param promo_type [Symbol, WhopSDK::Models::PromoType] The type (% or flat amount) of the promo.
31
+ #
32
+ # @param churned_users_only [Boolean, nil] Restricts promo use to only users who have churned from the company before.
33
+ #
34
+ # @param existing_memberships_only [Boolean, nil] Whether this promo code is for existing memberships only (cancelations)
35
+ #
36
+ # @param expires_at [Time, nil] The date/time of when the promo expires.
37
+ #
38
+ # @param one_per_customer [Boolean, nil] Restricts promo use to only be applied once per customer.
39
+ #
40
+ # @param plan_ids [Array<String>, nil] The IDs of the plans that the promo code applies to. If product_id is provided,
41
+ #
42
+ # @param product_id [String, nil] The product to lock the promo code to, if any. If provided will filter out any p
43
+ #
44
+ # @param stock [Integer, nil] The quantity limit on the number of uses.
45
+ #
46
+ # @param unlimited_stock [Boolean, nil] Whether or not the promo code should have unlimited stock.
47
+ #
48
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil]
49
+ #
50
+ # @return [WhopSDK::Models::PromoCode]
51
+ #
52
+ # @see WhopSDK::Models::PromoCodeCreateParams
53
+ def create(params)
54
+ parsed, options = WhopSDK::PromoCodeCreateParams.dump_request(params)
55
+ @client.request(
56
+ method: :post,
57
+ path: "promo_codes",
58
+ body: parsed,
59
+ model: WhopSDK::PromoCode,
60
+ options: options
61
+ )
62
+ end
63
+
64
+ # Retrieves a promo code by ID
65
+ #
66
+ # Required permissions:
67
+ #
68
+ # - `promo_code:basic:read`
69
+ # - `access_pass:basic:read`
70
+ #
71
+ # @overload retrieve(id, request_options: {})
72
+ #
73
+ # @param id [String]
74
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil]
75
+ #
76
+ # @return [WhopSDK::Models::PromoCode]
77
+ #
78
+ # @see WhopSDK::Models::PromoCodeRetrieveParams
79
+ def retrieve(id, params = {})
80
+ @client.request(
81
+ method: :get,
82
+ path: ["promo_codes/%1$s", id],
83
+ model: WhopSDK::PromoCode,
84
+ options: params[:request_options]
85
+ )
86
+ end
87
+
88
+ # Lists promo codes for a company
89
+ #
90
+ # Required permissions:
91
+ #
92
+ # - `promo_code:basic:read`
93
+ # - `access_pass:basic:read`
94
+ #
95
+ # @overload list(company_id:, after: nil, before: nil, first: nil, last: nil, plan_ids: nil, product_ids: nil, status: nil, request_options: {})
96
+ #
97
+ # @param company_id [String] The ID of the company to list promo codes for
98
+ #
99
+ # @param after [String, nil] Returns the elements in the list that come after the specified cursor.
100
+ #
101
+ # @param before [String, nil] Returns the elements in the list that come before the specified cursor.
102
+ #
103
+ # @param first [Integer, nil] Returns the first _n_ elements from the list.
104
+ #
105
+ # @param last [Integer, nil] Returns the last _n_ elements from the list.
106
+ #
107
+ # @param plan_ids [Array<String>, nil] Filter promo codes by plan ID(s)
108
+ #
109
+ # @param product_ids [Array<String>, nil] Filter promo codes by product ID(s)
110
+ #
111
+ # @param status [Symbol, WhopSDK::Models::PromoCodeStatus, nil] Statuses for promo codes
112
+ #
113
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil]
114
+ #
115
+ # @return [WhopSDK::Internal::CursorPage<WhopSDK::Models::PromoCodeListResponse>]
116
+ #
117
+ # @see WhopSDK::Models::PromoCodeListParams
118
+ def list(params)
119
+ parsed, options = WhopSDK::PromoCodeListParams.dump_request(params)
120
+ @client.request(
121
+ method: :get,
122
+ path: "promo_codes",
123
+ query: parsed,
124
+ page: WhopSDK::Internal::CursorPage,
125
+ model: WhopSDK::Models::PromoCodeListResponse,
126
+ options: options
127
+ )
128
+ end
129
+
130
+ # Archive a promo code, preventing further use
131
+ #
132
+ # Required permissions:
133
+ #
134
+ # - `promo_code:delete`
135
+ #
136
+ # @overload delete(id, request_options: {})
137
+ #
138
+ # @param id [String]
139
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil]
140
+ #
141
+ # @return [Boolean]
142
+ #
143
+ # @see WhopSDK::Models::PromoCodeDeleteParams
144
+ def delete(id, params = {})
145
+ @client.request(
146
+ method: :delete,
147
+ path: ["promo_codes/%1$s", id],
148
+ model: WhopSDK::Internal::Type::Boolean,
149
+ options: params[:request_options]
150
+ )
151
+ end
152
+
153
+ # @api private
154
+ #
155
+ # @param client [WhopSDK::Client]
156
+ def initialize(client:)
157
+ @client = client
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Resources
5
+ class Reviews
6
+ # Retrieve a review by its ID
7
+ #
8
+ # @overload retrieve(id, request_options: {})
9
+ #
10
+ # @param id [String]
11
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil]
12
+ #
13
+ # @return [WhopSDK::Models::ReviewRetrieveResponse]
14
+ #
15
+ # @see WhopSDK::Models::ReviewRetrieveParams
16
+ def retrieve(id, params = {})
17
+ @client.request(
18
+ method: :get,
19
+ path: ["reviews/%1$s", id],
20
+ model: WhopSDK::Models::ReviewRetrieveResponse,
21
+ options: params[:request_options]
22
+ )
23
+ end
24
+
25
+ # List all reviews
26
+ #
27
+ # @overload list(product_id:, after: nil, before: nil, first: nil, last: nil, max_stars: nil, min_stars: nil, request_options: {})
28
+ #
29
+ # @param product_id [String] The ID of the product
30
+ #
31
+ # @param after [String, nil] Returns the elements in the list that come after the specified cursor.
32
+ #
33
+ # @param before [String, nil] Returns the elements in the list that come before the specified cursor.
34
+ #
35
+ # @param first [Integer, nil] Returns the first _n_ elements from the list.
36
+ #
37
+ # @param last [Integer, nil] Returns the last _n_ elements from the list.
38
+ #
39
+ # @param max_stars [Integer, nil] The maximum star rating of the review (inclusive)
40
+ #
41
+ # @param min_stars [Integer, nil] The minimum star rating of the review (inclusive)
42
+ #
43
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}, nil]
44
+ #
45
+ # @return [WhopSDK::Internal::CursorPage<WhopSDK::Models::ReviewListResponse>]
46
+ #
47
+ # @see WhopSDK::Models::ReviewListParams
48
+ def list(params)
49
+ parsed, options = WhopSDK::ReviewListParams.dump_request(params)
50
+ @client.request(
51
+ method: :get,
52
+ path: "reviews",
53
+ query: parsed,
54
+ page: WhopSDK::Internal::CursorPage,
55
+ model: WhopSDK::Models::ReviewListResponse,
56
+ options: options
57
+ )
58
+ end
59
+
60
+ # @api private
61
+ #
62
+ # @param client [WhopSDK::Client]
63
+ def initialize(client:)
64
+ @client = client
65
+ end
66
+ end
67
+ end
68
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WhopSDK
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
data/lib/whop_sdk.rb CHANGED
@@ -69,12 +69,15 @@ require_relative "whop_sdk/models/app_retrieve_params"
69
69
  require_relative "whop_sdk/models/app_statuses"
70
70
  require_relative "whop_sdk/models/app_update_params"
71
71
  require_relative "whop_sdk/models/app_view_type"
72
+ require_relative "whop_sdk/models/assessment_question_types"
72
73
  require_relative "whop_sdk/models/authorized_user_list_params"
73
74
  require_relative "whop_sdk/models/authorized_user_list_response"
74
75
  require_relative "whop_sdk/models/authorized_user_retrieve_params"
75
76
  require_relative "whop_sdk/models/authorized_user_retrieve_response"
76
77
  require_relative "whop_sdk/models/authorized_user_roles"
78
+ require_relative "whop_sdk/models/billing_reasons"
77
79
  require_relative "whop_sdk/models/business_types"
80
+ require_relative "whop_sdk/models/card_brands"
78
81
  require_relative "whop_sdk/models/chat_channel"
79
82
  require_relative "whop_sdk/models/chat_channel_list_params"
80
83
  require_relative "whop_sdk/models/chat_channel_list_response"
@@ -88,11 +91,34 @@ require_relative "whop_sdk/models/checkout_configuration_retrieve_params"
88
91
  require_relative "whop_sdk/models/collection_method"
89
92
  require_relative "whop_sdk/models/company"
90
93
  require_relative "whop_sdk/models/company_retrieve_params"
94
+ require_relative "whop_sdk/models/course"
95
+ require_relative "whop_sdk/models/course_chapter"
96
+ require_relative "whop_sdk/models/course_chapter_create_params"
97
+ require_relative "whop_sdk/models/course_chapter_delete_params"
98
+ require_relative "whop_sdk/models/course_chapter_delete_response"
99
+ require_relative "whop_sdk/models/course_chapter_list_params"
100
+ require_relative "whop_sdk/models/course_chapter_list_response"
101
+ require_relative "whop_sdk/models/course_chapter_retrieve_params"
102
+ require_relative "whop_sdk/models/course_chapter_update_params"
103
+ require_relative "whop_sdk/models/course_create_params"
104
+ require_relative "whop_sdk/models/course_delete_params"
105
+ require_relative "whop_sdk/models/course_delete_response"
106
+ require_relative "whop_sdk/models/course_lesson_create_params"
107
+ require_relative "whop_sdk/models/course_lesson_delete_params"
108
+ require_relative "whop_sdk/models/course_lesson_delete_response"
91
109
  require_relative "whop_sdk/models/course_lesson_interaction"
92
110
  require_relative "whop_sdk/models/course_lesson_interaction_completed_webhook_event"
93
111
  require_relative "whop_sdk/models/course_lesson_interaction_list_item"
94
112
  require_relative "whop_sdk/models/course_lesson_interaction_list_params"
95
113
  require_relative "whop_sdk/models/course_lesson_interaction_retrieve_params"
114
+ require_relative "whop_sdk/models/course_lesson_list_params"
115
+ require_relative "whop_sdk/models/course_lesson_list_response"
116
+ require_relative "whop_sdk/models/course_lesson_retrieve_params"
117
+ require_relative "whop_sdk/models/course_lesson_update_params"
118
+ require_relative "whop_sdk/models/course_list_params"
119
+ require_relative "whop_sdk/models/course_list_response"
120
+ require_relative "whop_sdk/models/course_retrieve_params"
121
+ require_relative "whop_sdk/models/course_update_params"
96
122
  require_relative "whop_sdk/models/currency"
97
123
  require_relative "whop_sdk/models/custom_cta"
98
124
  require_relative "whop_sdk/models/direction"
@@ -116,6 +142,7 @@ require_relative "whop_sdk/models/experience_create_params"
116
142
  require_relative "whop_sdk/models/experience_delete_params"
117
143
  require_relative "whop_sdk/models/experience_delete_response"
118
144
  require_relative "whop_sdk/models/experience_detach_params"
145
+ require_relative "whop_sdk/models/experience_duplicate_params"
119
146
  require_relative "whop_sdk/models/experience_list_params"
120
147
  require_relative "whop_sdk/models/experience_list_response"
121
148
  require_relative "whop_sdk/models/experience_retrieve_params"
@@ -128,6 +155,7 @@ require_relative "whop_sdk/models/forum_post_create_params"
128
155
  require_relative "whop_sdk/models/forum_post_list_params"
129
156
  require_relative "whop_sdk/models/forum_post_list_response"
130
157
  require_relative "whop_sdk/models/forum_post_retrieve_params"
158
+ require_relative "whop_sdk/models/forum_post_update_params"
131
159
  require_relative "whop_sdk/models/forum_retrieve_params"
132
160
  require_relative "whop_sdk/models/forum_update_params"
133
161
  require_relative "whop_sdk/models/friendly_receipt_status"
@@ -146,8 +174,12 @@ require_relative "whop_sdk/models/invoice_status"
146
174
  require_relative "whop_sdk/models/invoice_voided_webhook_event"
147
175
  require_relative "whop_sdk/models/invoice_void_params"
148
176
  require_relative "whop_sdk/models/invoice_void_response"
177
+ require_relative "whop_sdk/models/languages"
149
178
  require_relative "whop_sdk/models/ledger_account_retrieve_params"
150
179
  require_relative "whop_sdk/models/ledger_account_retrieve_response"
180
+ require_relative "whop_sdk/models/lesson"
181
+ require_relative "whop_sdk/models/lesson_types"
182
+ require_relative "whop_sdk/models/lesson_visibilities"
151
183
  require_relative "whop_sdk/models/member_list_params"
152
184
  require_relative "whop_sdk/models/member_list_response"
153
185
  require_relative "whop_sdk/models/member_most_recent_actions"
@@ -170,11 +202,13 @@ require_relative "whop_sdk/models/message_create_params"
170
202
  require_relative "whop_sdk/models/message_list_params"
171
203
  require_relative "whop_sdk/models/message_list_response"
172
204
  require_relative "whop_sdk/models/message_retrieve_params"
205
+ require_relative "whop_sdk/models/message_update_params"
173
206
  require_relative "whop_sdk/models/page_info"
174
207
  require_relative "whop_sdk/models/payment"
175
208
  require_relative "whop_sdk/models/payment_failed_webhook_event"
176
209
  require_relative "whop_sdk/models/payment_list_params"
177
210
  require_relative "whop_sdk/models/payment_list_response"
211
+ require_relative "whop_sdk/models/payment_method_types"
178
212
  require_relative "whop_sdk/models/payment_pending_webhook_event"
179
213
  require_relative "whop_sdk/models/payment_refund_params"
180
214
  require_relative "whop_sdk/models/payment_retrieve_params"
@@ -198,6 +232,15 @@ require_relative "whop_sdk/models/product_list_item"
198
232
  require_relative "whop_sdk/models/product_list_params"
199
233
  require_relative "whop_sdk/models/product_retrieve_params"
200
234
  require_relative "whop_sdk/models/product_update_params"
235
+ require_relative "whop_sdk/models/promo_code"
236
+ require_relative "whop_sdk/models/promo_code_create_params"
237
+ require_relative "whop_sdk/models/promo_code_delete_params"
238
+ require_relative "whop_sdk/models/promo_code_delete_response"
239
+ require_relative "whop_sdk/models/promo_code_list_params"
240
+ require_relative "whop_sdk/models/promo_code_list_response"
241
+ require_relative "whop_sdk/models/promo_code_retrieve_params"
242
+ require_relative "whop_sdk/models/promo_code_status"
243
+ require_relative "whop_sdk/models/promo_duration"
201
244
  require_relative "whop_sdk/models/promo_type"
202
245
  require_relative "whop_sdk/models/reaction"
203
246
  require_relative "whop_sdk/models/reaction_create_params"
@@ -206,6 +249,11 @@ require_relative "whop_sdk/models/reaction_list_response"
206
249
  require_relative "whop_sdk/models/reaction_retrieve_params"
207
250
  require_relative "whop_sdk/models/receipt_status"
208
251
  require_relative "whop_sdk/models/release_method"
252
+ require_relative "whop_sdk/models/review_list_params"
253
+ require_relative "whop_sdk/models/review_list_response"
254
+ require_relative "whop_sdk/models/review_retrieve_params"
255
+ require_relative "whop_sdk/models/review_retrieve_response"
256
+ require_relative "whop_sdk/models/review_status"
209
257
  require_relative "whop_sdk/models/shipment"
210
258
  require_relative "whop_sdk/models/shipment_carrier"
211
259
  require_relative "whop_sdk/models/shipment_create_params"
@@ -244,7 +292,10 @@ require_relative "whop_sdk/resources/authorized_users"
244
292
  require_relative "whop_sdk/resources/chat_channels"
245
293
  require_relative "whop_sdk/resources/checkout_configurations"
246
294
  require_relative "whop_sdk/resources/companies"
295
+ require_relative "whop_sdk/resources/course_chapters"
247
296
  require_relative "whop_sdk/resources/course_lesson_interactions"
297
+ require_relative "whop_sdk/resources/course_lessons"
298
+ require_relative "whop_sdk/resources/courses"
248
299
  require_relative "whop_sdk/resources/entries"
249
300
  require_relative "whop_sdk/resources/experiences"
250
301
  require_relative "whop_sdk/resources/forum_posts"
@@ -257,7 +308,9 @@ require_relative "whop_sdk/resources/messages"
257
308
  require_relative "whop_sdk/resources/payments"
258
309
  require_relative "whop_sdk/resources/plans"
259
310
  require_relative "whop_sdk/resources/products"
311
+ require_relative "whop_sdk/resources/promo_codes"
260
312
  require_relative "whop_sdk/resources/reactions"
313
+ require_relative "whop_sdk/resources/reviews"
261
314
  require_relative "whop_sdk/resources/shipments"
262
315
  require_relative "whop_sdk/resources/support_channels"
263
316
  require_relative "whop_sdk/resources/transfers"
@@ -92,6 +92,21 @@ module WhopSDK
92
92
  sig { returns(WhopSDK::Resources::Forums) }
93
93
  attr_reader :forums
94
94
 
95
+ sig { returns(WhopSDK::Resources::PromoCodes) }
96
+ attr_reader :promo_codes
97
+
98
+ sig { returns(WhopSDK::Resources::Courses) }
99
+ attr_reader :courses
100
+
101
+ sig { returns(WhopSDK::Resources::CourseChapters) }
102
+ attr_reader :course_chapters
103
+
104
+ sig { returns(WhopSDK::Resources::CourseLessons) }
105
+ attr_reader :course_lessons
106
+
107
+ sig { returns(WhopSDK::Resources::Reviews) }
108
+ attr_reader :reviews
109
+
95
110
  # @api private
96
111
  sig { override.returns(T::Hash[String, String]) }
97
112
  private def auth_headers
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # The available types for an assessment question
6
+ module AssessmentQuestionTypes
7
+ extend WhopSDK::Internal::Type::Enum
8
+
9
+ TaggedSymbol =
10
+ T.type_alias { T.all(Symbol, WhopSDK::AssessmentQuestionTypes) }
11
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
12
+
13
+ SHORT_ANSWER =
14
+ T.let(:short_answer, WhopSDK::AssessmentQuestionTypes::TaggedSymbol)
15
+ TRUE_FALSE =
16
+ T.let(:true_false, WhopSDK::AssessmentQuestionTypes::TaggedSymbol)
17
+ MULTIPLE_CHOICE =
18
+ T.let(:multiple_choice, WhopSDK::AssessmentQuestionTypes::TaggedSymbol)
19
+ MULTIPLE_SELECT =
20
+ T.let(:multiple_select, WhopSDK::AssessmentQuestionTypes::TaggedSymbol)
21
+
22
+ sig do
23
+ override.returns(
24
+ T::Array[WhopSDK::AssessmentQuestionTypes::TaggedSymbol]
25
+ )
26
+ end
27
+ def self.values
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # The reason why a specific payment was billed
6
+ module BillingReasons
7
+ extend WhopSDK::Internal::Type::Enum
8
+
9
+ TaggedSymbol = T.type_alias { T.all(Symbol, WhopSDK::BillingReasons) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ SUBSCRIPTION_CREATE =
13
+ T.let(:subscription_create, WhopSDK::BillingReasons::TaggedSymbol)
14
+ SUBSCRIPTION_CYCLE =
15
+ T.let(:subscription_cycle, WhopSDK::BillingReasons::TaggedSymbol)
16
+ SUBSCRIPTION_UPDATE =
17
+ T.let(:subscription_update, WhopSDK::BillingReasons::TaggedSymbol)
18
+ ONE_TIME = T.let(:one_time, WhopSDK::BillingReasons::TaggedSymbol)
19
+ MANUAL = T.let(:manual, WhopSDK::BillingReasons::TaggedSymbol)
20
+ SUBSCRIPTION = T.let(:subscription, WhopSDK::BillingReasons::TaggedSymbol)
21
+
22
+ sig { override.returns(T::Array[WhopSDK::BillingReasons::TaggedSymbol]) }
23
+ def self.values
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # Possible card brands that a payment token can have
6
+ module CardBrands
7
+ extend WhopSDK::Internal::Type::Enum
8
+
9
+ TaggedSymbol = T.type_alias { T.all(Symbol, WhopSDK::CardBrands) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ MASTERCARD = T.let(:mastercard, WhopSDK::CardBrands::TaggedSymbol)
13
+ VISA = T.let(:visa, WhopSDK::CardBrands::TaggedSymbol)
14
+ AMEX = T.let(:amex, WhopSDK::CardBrands::TaggedSymbol)
15
+ DISCOVER = T.let(:discover, WhopSDK::CardBrands::TaggedSymbol)
16
+ UNIONPAY = T.let(:unionpay, WhopSDK::CardBrands::TaggedSymbol)
17
+ JCB = T.let(:jcb, WhopSDK::CardBrands::TaggedSymbol)
18
+ DINERS = T.let(:diners, WhopSDK::CardBrands::TaggedSymbol)
19
+ LINK = T.let(:link, WhopSDK::CardBrands::TaggedSymbol)
20
+ TROY = T.let(:troy, WhopSDK::CardBrands::TaggedSymbol)
21
+ VISADANKORT = T.let(:visadankort, WhopSDK::CardBrands::TaggedSymbol)
22
+ VISABANCONTACT = T.let(:visabancontact, WhopSDK::CardBrands::TaggedSymbol)
23
+ CHINA_UNION_PAY =
24
+ T.let(:china_union_pay, WhopSDK::CardBrands::TaggedSymbol)
25
+ RUPAY = T.let(:rupay, WhopSDK::CardBrands::TaggedSymbol)
26
+ JCBRUPAY = T.let(:jcbrupay, WhopSDK::CardBrands::TaggedSymbol)
27
+ ELO = T.let(:elo, WhopSDK::CardBrands::TaggedSymbol)
28
+ UNKNOWN = T.let(:unknown, WhopSDK::CardBrands::TaggedSymbol)
29
+
30
+ sig { override.returns(T::Array[WhopSDK::CardBrands::TaggedSymbol]) }
31
+ def self.values
32
+ end
33
+ end
34
+ end
35
+ end
@@ -31,7 +31,8 @@ module WhopSDK
31
31
  sig { params(plan: WhopSDK::CheckoutConfiguration::Plan::OrHash).void }
32
32
  attr_writer :plan
33
33
 
34
- # The URL to redirect the user to after the checkout configuration is created
34
+ # A URL you can send to customers to complete a checkout. It looks like
35
+ # `/checkout/plan_xxxx?session={id}`
35
36
  sig { returns(String) }
36
37
  attr_accessor :purchase_url
37
38
 
@@ -66,7 +67,8 @@ module WhopSDK
66
67
  metadata:,
67
68
  # The plan to use for the checkout configuration
68
69
  plan:,
69
- # The URL to redirect the user to after the checkout configuration is created
70
+ # A URL you can send to customers to complete a checkout. It looks like
71
+ # `/checkout/plan_xxxx?session={id}`
70
72
  purchase_url:,
71
73
  # The URL to redirect the user to after the checkout configuration is created
72
74
  redirect_url: