growsurf-ruby 0.0.2

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 (224) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +11 -0
  4. data/README.md +234 -0
  5. data/SECURITY.md +23 -0
  6. data/lib/growsurf_ruby/client.rb +90 -0
  7. data/lib/growsurf_ruby/errors.rb +228 -0
  8. data/lib/growsurf_ruby/file_part.rb +58 -0
  9. data/lib/growsurf_ruby/internal/transport/base_client.rb +573 -0
  10. data/lib/growsurf_ruby/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/growsurf_ruby/internal/type/array_of.rb +168 -0
  12. data/lib/growsurf_ruby/internal/type/base_model.rb +531 -0
  13. data/lib/growsurf_ruby/internal/type/base_page.rb +55 -0
  14. data/lib/growsurf_ruby/internal/type/boolean.rb +77 -0
  15. data/lib/growsurf_ruby/internal/type/converter.rb +327 -0
  16. data/lib/growsurf_ruby/internal/type/enum.rb +156 -0
  17. data/lib/growsurf_ruby/internal/type/file_input.rb +111 -0
  18. data/lib/growsurf_ruby/internal/type/hash_of.rb +188 -0
  19. data/lib/growsurf_ruby/internal/type/request_parameters.rb +42 -0
  20. data/lib/growsurf_ruby/internal/type/union.rb +254 -0
  21. data/lib/growsurf_ruby/internal/type/unknown.rb +81 -0
  22. data/lib/growsurf_ruby/internal/util.rb +966 -0
  23. data/lib/growsurf_ruby/internal.rb +20 -0
  24. data/lib/growsurf_ruby/models/campaign/commission_approve_params.rb +28 -0
  25. data/lib/growsurf_ruby/models/campaign/commission_approve_response.rb +18 -0
  26. data/lib/growsurf_ruby/models/campaign/commission_delete_params.rb +28 -0
  27. data/lib/growsurf_ruby/models/campaign/commission_delete_response.rb +18 -0
  28. data/lib/growsurf_ruby/models/campaign/fraud_risk_level.rb +18 -0
  29. data/lib/growsurf_ruby/models/campaign/participant.rb +495 -0
  30. data/lib/growsurf_ruby/models/campaign/participant_add_params.rb +93 -0
  31. data/lib/growsurf_ruby/models/campaign/participant_delete_params.rb +28 -0
  32. data/lib/growsurf_ruby/models/campaign/participant_delete_response.rb +18 -0
  33. data/lib/growsurf_ruby/models/campaign/participant_list_commissions_params.rb +68 -0
  34. data/lib/growsurf_ruby/models/campaign/participant_list_payouts_params.rb +67 -0
  35. data/lib/growsurf_ruby/models/campaign/participant_list_referrals_params.rb +117 -0
  36. data/lib/growsurf_ruby/models/campaign/participant_list_rewards_params.rb +46 -0
  37. data/lib/growsurf_ruby/models/campaign/participant_list_rewards_response.rb +30 -0
  38. data/lib/growsurf_ruby/models/campaign/participant_record_transaction_params.rb +170 -0
  39. data/lib/growsurf_ruby/models/campaign/participant_record_transaction_response.rb +91 -0
  40. data/lib/growsurf_ruby/models/campaign/participant_retrieve_params.rb +28 -0
  41. data/lib/growsurf_ruby/models/campaign/participant_reward.rb +103 -0
  42. data/lib/growsurf_ruby/models/campaign/participant_send_invites_params.rb +46 -0
  43. data/lib/growsurf_ruby/models/campaign/participant_send_invites_response.rb +30 -0
  44. data/lib/growsurf_ruby/models/campaign/participant_trigger_referral_params.rb +28 -0
  45. data/lib/growsurf_ruby/models/campaign/participant_trigger_referral_response.rb +24 -0
  46. data/lib/growsurf_ruby/models/campaign/participant_update_params.rb +100 -0
  47. data/lib/growsurf_ruby/models/campaign/referral_source.rb +17 -0
  48. data/lib/growsurf_ruby/models/campaign/referral_status.rb +19 -0
  49. data/lib/growsurf_ruby/models/campaign/reward_approve_params.rb +38 -0
  50. data/lib/growsurf_ruby/models/campaign/reward_approve_response.rb +18 -0
  51. data/lib/growsurf_ruby/models/campaign/reward_delete_params.rb +28 -0
  52. data/lib/growsurf_ruby/models/campaign/reward_delete_response.rb +18 -0
  53. data/lib/growsurf_ruby/models/campaign/reward_fulfill_params.rb +28 -0
  54. data/lib/growsurf_ruby/models/campaign/reward_fulfill_response.rb +18 -0
  55. data/lib/growsurf_ruby/models/campaign.rb +257 -0
  56. data/lib/growsurf_ruby/models/campaign_list_commissions_params.rb +59 -0
  57. data/lib/growsurf_ruby/models/campaign_list_leaderboard_params.rb +71 -0
  58. data/lib/growsurf_ruby/models/campaign_list_params.rb +14 -0
  59. data/lib/growsurf_ruby/models/campaign_list_participants_params.rb +37 -0
  60. data/lib/growsurf_ruby/models/campaign_list_payouts_params.rb +58 -0
  61. data/lib/growsurf_ruby/models/campaign_list_referrals_params.rb +108 -0
  62. data/lib/growsurf_ruby/models/campaign_list_response.rb +16 -0
  63. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +50 -0
  64. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +215 -0
  65. data/lib/growsurf_ruby/models/campaign_retrieve_params.rb +20 -0
  66. data/lib/growsurf_ruby/models/commission_structure.rb +137 -0
  67. data/lib/growsurf_ruby/models/participant_commission_list.rb +170 -0
  68. data/lib/growsurf_ruby/models/participant_list.rb +29 -0
  69. data/lib/growsurf_ruby/models/participant_payout_list.rb +136 -0
  70. data/lib/growsurf_ruby/models/referral_list.rb +96 -0
  71. data/lib/growsurf_ruby/models.rb +71 -0
  72. data/lib/growsurf_ruby/request_options.rb +77 -0
  73. data/lib/growsurf_ruby/resources/campaign/commission.rb +71 -0
  74. data/lib/growsurf_ruby/resources/campaign/participant.rb +446 -0
  75. data/lib/growsurf_ruby/resources/campaign/reward.rb +102 -0
  76. data/lib/growsurf_ruby/resources/campaign.rb +266 -0
  77. data/lib/growsurf_ruby/version.rb +5 -0
  78. data/lib/growsurf_ruby.rb +106 -0
  79. data/manifest.yaml +17 -0
  80. data/rbi/growsurf_ruby/client.rbi +51 -0
  81. data/rbi/growsurf_ruby/errors.rbi +205 -0
  82. data/rbi/growsurf_ruby/file_part.rbi +37 -0
  83. data/rbi/growsurf_ruby/internal/transport/base_client.rbi +305 -0
  84. data/rbi/growsurf_ruby/internal/transport/pooled_net_requester.rbi +84 -0
  85. data/rbi/growsurf_ruby/internal/type/array_of.rbi +104 -0
  86. data/rbi/growsurf_ruby/internal/type/base_model.rbi +314 -0
  87. data/rbi/growsurf_ruby/internal/type/base_page.rbi +43 -0
  88. data/rbi/growsurf_ruby/internal/type/boolean.rbi +58 -0
  89. data/rbi/growsurf_ruby/internal/type/converter.rbi +222 -0
  90. data/rbi/growsurf_ruby/internal/type/enum.rbi +82 -0
  91. data/rbi/growsurf_ruby/internal/type/file_input.rbi +59 -0
  92. data/rbi/growsurf_ruby/internal/type/hash_of.rbi +104 -0
  93. data/rbi/growsurf_ruby/internal/type/request_parameters.rbi +31 -0
  94. data/rbi/growsurf_ruby/internal/type/union.rbi +128 -0
  95. data/rbi/growsurf_ruby/internal/type/unknown.rbi +58 -0
  96. data/rbi/growsurf_ruby/internal/util.rbi +515 -0
  97. data/rbi/growsurf_ruby/internal.rbi +18 -0
  98. data/rbi/growsurf_ruby/models/campaign/commission_approve_params.rbi +48 -0
  99. data/rbi/growsurf_ruby/models/campaign/commission_approve_response.rbi +28 -0
  100. data/rbi/growsurf_ruby/models/campaign/commission_delete_params.rbi +48 -0
  101. data/rbi/growsurf_ruby/models/campaign/commission_delete_response.rbi +28 -0
  102. data/rbi/growsurf_ruby/models/campaign/fraud_risk_level.rbi +29 -0
  103. data/rbi/growsurf_ruby/models/campaign/participant.rbi +667 -0
  104. data/rbi/growsurf_ruby/models/campaign/participant_add_params.rbi +166 -0
  105. data/rbi/growsurf_ruby/models/campaign/participant_delete_params.rbi +48 -0
  106. data/rbi/growsurf_ruby/models/campaign/participant_delete_response.rbi +28 -0
  107. data/rbi/growsurf_ruby/models/campaign/participant_list_commissions_params.rbi +148 -0
  108. data/rbi/growsurf_ruby/models/campaign/participant_list_payouts_params.rbi +143 -0
  109. data/rbi/growsurf_ruby/models/campaign/participant_list_referrals_params.rbi +228 -0
  110. data/rbi/growsurf_ruby/models/campaign/participant_list_rewards_params.rbi +74 -0
  111. data/rbi/growsurf_ruby/models/campaign/participant_list_rewards_response.rbi +48 -0
  112. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_params.rbi +255 -0
  113. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_response.rbi +138 -0
  114. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_params.rbi +48 -0
  115. data/rbi/growsurf_ruby/models/campaign/participant_reward.rbi +185 -0
  116. data/rbi/growsurf_ruby/models/campaign/participant_send_invites_params.rbi +70 -0
  117. data/rbi/growsurf_ruby/models/campaign/participant_send_invites_response.rbi +44 -0
  118. data/rbi/growsurf_ruby/models/campaign/participant_trigger_referral_params.rbi +48 -0
  119. data/rbi/growsurf_ruby/models/campaign/participant_trigger_referral_response.rbi +36 -0
  120. data/rbi/growsurf_ruby/models/campaign/participant_update_params.rbi +178 -0
  121. data/rbi/growsurf_ruby/models/campaign/referral_source.rbi +31 -0
  122. data/rbi/growsurf_ruby/models/campaign/referral_status.rbi +44 -0
  123. data/rbi/growsurf_ruby/models/campaign/reward_approve_params.rbi +63 -0
  124. data/rbi/growsurf_ruby/models/campaign/reward_approve_response.rbi +28 -0
  125. data/rbi/growsurf_ruby/models/campaign/reward_delete_params.rbi +48 -0
  126. data/rbi/growsurf_ruby/models/campaign/reward_delete_response.rbi +28 -0
  127. data/rbi/growsurf_ruby/models/campaign/reward_fulfill_params.rbi +48 -0
  128. data/rbi/growsurf_ruby/models/campaign/reward_fulfill_response.rbi +28 -0
  129. data/rbi/growsurf_ruby/models/campaign.rbi +376 -0
  130. data/rbi/growsurf_ruby/models/campaign_list_commissions_params.rbi +135 -0
  131. data/rbi/growsurf_ruby/models/campaign_list_leaderboard_params.rbi +171 -0
  132. data/rbi/growsurf_ruby/models/campaign_list_params.rbi +32 -0
  133. data/rbi/growsurf_ruby/models/campaign_list_participants_params.rbi +66 -0
  134. data/rbi/growsurf_ruby/models/campaign_list_payouts_params.rbi +127 -0
  135. data/rbi/growsurf_ruby/models/campaign_list_referrals_params.rbi +213 -0
  136. data/rbi/growsurf_ruby/models/campaign_list_response.rbi +32 -0
  137. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +81 -0
  138. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +320 -0
  139. data/rbi/growsurf_ruby/models/campaign_retrieve_params.rbi +38 -0
  140. data/rbi/growsurf_ruby/models/commission_structure.rbi +174 -0
  141. data/rbi/growsurf_ruby/models/participant_commission_list.rbi +269 -0
  142. data/rbi/growsurf_ruby/models/participant_list.rbi +44 -0
  143. data/rbi/growsurf_ruby/models/participant_payout_list.rbi +219 -0
  144. data/rbi/growsurf_ruby/models/referral_list.rbi +129 -0
  145. data/rbi/growsurf_ruby/models.rbi +38 -0
  146. data/rbi/growsurf_ruby/request_options.rbi +59 -0
  147. data/rbi/growsurf_ruby/resources/campaign/commission.rbi +49 -0
  148. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +385 -0
  149. data/rbi/growsurf_ruby/resources/campaign/reward.rbi +70 -0
  150. data/rbi/growsurf_ruby/resources/campaign.rbi +205 -0
  151. data/rbi/growsurf_ruby/version.rbi +5 -0
  152. data/sig/growsurf_ruby/client.rbs +26 -0
  153. data/sig/growsurf_ruby/errors.rbs +117 -0
  154. data/sig/growsurf_ruby/file_part.rbs +21 -0
  155. data/sig/growsurf_ruby/internal/transport/base_client.rbs +133 -0
  156. data/sig/growsurf_ruby/internal/transport/pooled_net_requester.rbs +48 -0
  157. data/sig/growsurf_ruby/internal/type/array_of.rbs +48 -0
  158. data/sig/growsurf_ruby/internal/type/base_model.rbs +104 -0
  159. data/sig/growsurf_ruby/internal/type/base_page.rbs +24 -0
  160. data/sig/growsurf_ruby/internal/type/boolean.rbs +26 -0
  161. data/sig/growsurf_ruby/internal/type/converter.rbs +79 -0
  162. data/sig/growsurf_ruby/internal/type/enum.rbs +32 -0
  163. data/sig/growsurf_ruby/internal/type/file_input.rbs +25 -0
  164. data/sig/growsurf_ruby/internal/type/hash_of.rbs +48 -0
  165. data/sig/growsurf_ruby/internal/type/request_parameters.rbs +19 -0
  166. data/sig/growsurf_ruby/internal/type/union.rbs +52 -0
  167. data/sig/growsurf_ruby/internal/type/unknown.rbs +26 -0
  168. data/sig/growsurf_ruby/internal/util.rbs +199 -0
  169. data/sig/growsurf_ruby/internal.rbs +9 -0
  170. data/sig/growsurf_ruby/models/campaign/commission_approve_params.rbs +30 -0
  171. data/sig/growsurf_ruby/models/campaign/commission_approve_response.rbs +15 -0
  172. data/sig/growsurf_ruby/models/campaign/commission_delete_params.rbs +30 -0
  173. data/sig/growsurf_ruby/models/campaign/commission_delete_response.rbs +15 -0
  174. data/sig/growsurf_ruby/models/campaign/fraud_risk_level.rbs +17 -0
  175. data/sig/growsurf_ruby/models/campaign/participant.rbs +455 -0
  176. data/sig/growsurf_ruby/models/campaign/participant_add_params.rbs +95 -0
  177. data/sig/growsurf_ruby/models/campaign/participant_delete_params.rbs +30 -0
  178. data/sig/growsurf_ruby/models/campaign/participant_delete_response.rbs +15 -0
  179. data/sig/growsurf_ruby/models/campaign/participant_list_commissions_params.rbs +70 -0
  180. data/sig/growsurf_ruby/models/campaign/participant_list_payouts_params.rbs +69 -0
  181. data/sig/growsurf_ruby/models/campaign/participant_list_referrals_params.rbs +123 -0
  182. data/sig/growsurf_ruby/models/campaign/participant_list_rewards_params.rbs +47 -0
  183. data/sig/growsurf_ruby/models/campaign/participant_list_rewards_response.rbs +32 -0
  184. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_params.rbs +194 -0
  185. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_response.rbs +84 -0
  186. data/sig/growsurf_ruby/models/campaign/participant_retrieve_params.rbs +30 -0
  187. data/sig/growsurf_ruby/models/campaign/participant_reward.rbs +111 -0
  188. data/sig/growsurf_ruby/models/campaign/participant_send_invites_params.rbs +48 -0
  189. data/sig/growsurf_ruby/models/campaign/participant_send_invites_response.rbs +28 -0
  190. data/sig/growsurf_ruby/models/campaign/participant_trigger_referral_params.rbs +30 -0
  191. data/sig/growsurf_ruby/models/campaign/participant_trigger_referral_response.rbs +20 -0
  192. data/sig/growsurf_ruby/models/campaign/participant_update_params.rbs +104 -0
  193. data/sig/growsurf_ruby/models/campaign/referral_source.rbs +16 -0
  194. data/sig/growsurf_ruby/models/campaign/referral_status.rbs +19 -0
  195. data/sig/growsurf_ruby/models/campaign/reward_approve_params.rbs +36 -0
  196. data/sig/growsurf_ruby/models/campaign/reward_approve_response.rbs +15 -0
  197. data/sig/growsurf_ruby/models/campaign/reward_delete_params.rbs +30 -0
  198. data/sig/growsurf_ruby/models/campaign/reward_delete_response.rbs +15 -0
  199. data/sig/growsurf_ruby/models/campaign/reward_fulfill_params.rbs +30 -0
  200. data/sig/growsurf_ruby/models/campaign/reward_fulfill_response.rbs +15 -0
  201. data/sig/growsurf_ruby/models/campaign.rbs +221 -0
  202. data/sig/growsurf_ruby/models/campaign_list_commissions_params.rbs +63 -0
  203. data/sig/growsurf_ruby/models/campaign_list_leaderboard_params.rbs +83 -0
  204. data/sig/growsurf_ruby/models/campaign_list_params.rbs +15 -0
  205. data/sig/growsurf_ruby/models/campaign_list_participants_params.rbs +36 -0
  206. data/sig/growsurf_ruby/models/campaign_list_payouts_params.rbs +62 -0
  207. data/sig/growsurf_ruby/models/campaign_list_referrals_params.rbs +116 -0
  208. data/sig/growsurf_ruby/models/campaign_list_response.rbs +14 -0
  209. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +42 -0
  210. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +217 -0
  211. data/sig/growsurf_ruby/models/campaign_retrieve_params.rbs +23 -0
  212. data/sig/growsurf_ruby/models/commission_structure.rbs +121 -0
  213. data/sig/growsurf_ruby/models/participant_commission_list.rbs +166 -0
  214. data/sig/growsurf_ruby/models/participant_list.rbs +30 -0
  215. data/sig/growsurf_ruby/models/participant_payout_list.rbs +136 -0
  216. data/sig/growsurf_ruby/models/referral_list.rbs +92 -0
  217. data/sig/growsurf_ruby/models.rbs +31 -0
  218. data/sig/growsurf_ruby/request_options.rbs +36 -0
  219. data/sig/growsurf_ruby/resources/campaign/commission.rbs +21 -0
  220. data/sig/growsurf_ruby/resources/campaign/participant.rbs +133 -0
  221. data/sig/growsurf_ruby/resources/campaign/reward.rbs +28 -0
  222. data/sig/growsurf_ruby/resources/campaign.rbs +76 -0
  223. data/sig/growsurf_ruby/version.rbs +3 -0
  224. metadata +295 -0
@@ -0,0 +1,446 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ class Participant
7
+ # Retrieves a single participant by GrowSurf participant ID or email address.
8
+ #
9
+ # @overload retrieve(participant_id_or_email, id:, request_options: {})
10
+ #
11
+ # @param participant_id_or_email [String] GrowSurf participant ID or URL-encoded participant email address.
12
+ #
13
+ # @param id [String] GrowSurf program ID.
14
+ #
15
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [GrowsurfRuby::Models::Campaign::CampaignParticipant]
18
+ #
19
+ # @see GrowsurfRuby::Models::Campaign::ParticipantRetrieveParams
20
+ def retrieve(participant_id_or_email, params)
21
+ parsed, options = GrowsurfRuby::Campaign::ParticipantRetrieveParams.dump_request(params)
22
+ id =
23
+ parsed.delete(:id) do
24
+ raise ArgumentError.new("missing required path argument #{_1}")
25
+ end
26
+ @client.request(
27
+ method: :get,
28
+ path: ["campaign/%1$s/participant/%2$s", id, participant_id_or_email],
29
+ model: GrowsurfRuby::Campaign::CampaignParticipant,
30
+ options: options
31
+ )
32
+ end
33
+
34
+ # Updates a participant by GrowSurf participant ID or email address.
35
+ #
36
+ # @overload update(participant_id_or_email, id:, email: nil, first_name: nil, last_name: nil, metadata: nil, referral_status: nil, referred_by: nil, unsubscribed: nil, vanity_keys: nil, request_options: {})
37
+ #
38
+ # @param participant_id_or_email [String] Path param: GrowSurf participant ID or URL-encoded participant email address.
39
+ #
40
+ # @param id [String] Path param: GrowSurf program ID.
41
+ #
42
+ # @param email [String] Body param
43
+ #
44
+ # @param first_name [String] Body param
45
+ #
46
+ # @param last_name [String] Body param
47
+ #
48
+ # @param metadata [Hash{Symbol=>Object}] Body param: Shallow custom metadata object.
49
+ #
50
+ # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantUpdateParams::ReferralStatus] Body param
51
+ #
52
+ # @param referred_by [String] Body param
53
+ #
54
+ # @param unsubscribed [Boolean] Body param
55
+ #
56
+ # @param vanity_keys [Array<String>] Body param
57
+ #
58
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
59
+ #
60
+ # @return [GrowsurfRuby::Models::Campaign::CampaignParticipant]
61
+ #
62
+ # @see GrowsurfRuby::Models::Campaign::ParticipantUpdateParams
63
+ def update(participant_id_or_email, params)
64
+ parsed, options = GrowsurfRuby::Campaign::ParticipantUpdateParams.dump_request(params)
65
+ id =
66
+ parsed.delete(:id) do
67
+ raise ArgumentError.new("missing required path argument #{_1}")
68
+ end
69
+ @client.request(
70
+ method: :post,
71
+ path: ["campaign/%1$s/participant/%2$s", id, participant_id_or_email],
72
+ body: parsed,
73
+ model: GrowsurfRuby::Campaign::CampaignParticipant,
74
+ options: options
75
+ )
76
+ end
77
+
78
+ # Removes a participant by GrowSurf participant ID or email address.
79
+ #
80
+ # @overload delete(participant_id_or_email, id:, request_options: {})
81
+ #
82
+ # @param participant_id_or_email [String] GrowSurf participant ID or URL-encoded participant email address.
83
+ #
84
+ # @param id [String] GrowSurf program ID.
85
+ #
86
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
87
+ #
88
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantDeleteResponse]
89
+ #
90
+ # @see GrowsurfRuby::Models::Campaign::ParticipantDeleteParams
91
+ def delete(participant_id_or_email, params)
92
+ parsed, options = GrowsurfRuby::Campaign::ParticipantDeleteParams.dump_request(params)
93
+ id =
94
+ parsed.delete(:id) do
95
+ raise ArgumentError.new("missing required path argument #{_1}")
96
+ end
97
+ @client.request(
98
+ method: :delete,
99
+ path: ["campaign/%1$s/participant/%2$s", id, participant_id_or_email],
100
+ model: GrowsurfRuby::Models::Campaign::ParticipantDeleteResponse,
101
+ options: options
102
+ )
103
+ end
104
+
105
+ # Adds a new participant to the program. If the email already exists, the existing
106
+ # participant is returned.
107
+ #
108
+ # @overload add(id, email:, fingerprint: nil, first_name: nil, ip_address: nil, last_name: nil, metadata: nil, referral_status: nil, referred_by: nil, request_options: {})
109
+ #
110
+ # @param id [String] GrowSurf program ID.
111
+ #
112
+ # @param email [String]
113
+ #
114
+ # @param fingerprint [String]
115
+ #
116
+ # @param first_name [String]
117
+ #
118
+ # @param ip_address [String]
119
+ #
120
+ # @param last_name [String]
121
+ #
122
+ # @param metadata [Hash{Symbol=>Object}] Shallow custom metadata object.
123
+ #
124
+ # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantAddParams::ReferralStatus]
125
+ #
126
+ # @param referred_by [String] Referrer participant ID or email address.
127
+ #
128
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
129
+ #
130
+ # @return [GrowsurfRuby::Models::Campaign::CampaignParticipant]
131
+ #
132
+ # @see GrowsurfRuby::Models::Campaign::ParticipantAddParams
133
+ def add(id, params)
134
+ parsed, options = GrowsurfRuby::Campaign::ParticipantAddParams.dump_request(params)
135
+ @client.request(
136
+ method: :post,
137
+ path: ["campaign/%1$s/participant", id],
138
+ body: parsed,
139
+ model: GrowsurfRuby::Campaign::CampaignParticipant,
140
+ options: options
141
+ )
142
+ end
143
+
144
+ # Retrieves a paged list of commissions earned by a participant.
145
+ #
146
+ # @overload list_commissions(participant_id_or_email, id:, limit: nil, next_id: nil, status: nil, request_options: {})
147
+ #
148
+ # @param participant_id_or_email [String] Path param: GrowSurf participant ID or URL-encoded participant email address.
149
+ #
150
+ # @param id [String] Path param: GrowSurf program ID.
151
+ #
152
+ # @param limit [Integer] Query param: Number of results to return. Maximum 100.
153
+ #
154
+ # @param next_id [String] Query param: ID to start the next paged result set with.
155
+ #
156
+ # @param status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantListCommissionsParams::Status] Query param: Participant commission status.
157
+ #
158
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
159
+ #
160
+ # @return [GrowsurfRuby::Models::ParticipantCommissionList]
161
+ #
162
+ # @see GrowsurfRuby::Models::Campaign::ParticipantListCommissionsParams
163
+ def list_commissions(participant_id_or_email, params)
164
+ parsed, options = GrowsurfRuby::Campaign::ParticipantListCommissionsParams.dump_request(params)
165
+ query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
166
+ id =
167
+ parsed.delete(:id) do
168
+ raise ArgumentError.new("missing required path argument #{_1}")
169
+ end
170
+ @client.request(
171
+ method: :get,
172
+ path: ["campaign/%1$s/participant/%2$s/commissions", id, participant_id_or_email],
173
+ query: query.transform_keys(next_id: "nextId"),
174
+ model: GrowsurfRuby::ParticipantCommissionList,
175
+ options: options
176
+ )
177
+ end
178
+
179
+ # Retrieves a paged list of payouts that belong to a participant.
180
+ #
181
+ # @overload list_payouts(participant_id_or_email, id:, limit: nil, next_id: nil, status: nil, request_options: {})
182
+ #
183
+ # @param participant_id_or_email [String] Path param: GrowSurf participant ID or URL-encoded participant email address.
184
+ #
185
+ # @param id [String] Path param: GrowSurf program ID.
186
+ #
187
+ # @param limit [Integer] Query param: Number of results to return. Maximum 100.
188
+ #
189
+ # @param next_id [String] Query param: ID to start the next paged result set with.
190
+ #
191
+ # @param status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantListPayoutsParams::Status] Query param: Participant payout status.
192
+ #
193
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
194
+ #
195
+ # @return [GrowsurfRuby::Models::ParticipantPayoutList]
196
+ #
197
+ # @see GrowsurfRuby::Models::Campaign::ParticipantListPayoutsParams
198
+ def list_payouts(participant_id_or_email, params)
199
+ parsed, options = GrowsurfRuby::Campaign::ParticipantListPayoutsParams.dump_request(params)
200
+ query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
201
+ id =
202
+ parsed.delete(:id) do
203
+ raise ArgumentError.new("missing required path argument #{_1}")
204
+ end
205
+ @client.request(
206
+ method: :get,
207
+ path: ["campaign/%1$s/participant/%2$s/payouts", id, participant_id_or_email],
208
+ query: query.transform_keys(next_id: "nextId"),
209
+ model: GrowsurfRuby::ParticipantPayoutList,
210
+ options: options
211
+ )
212
+ end
213
+
214
+ # Retrieves referrals and email invites made by a participant.
215
+ #
216
+ # @overload list_referrals(participant_id_or_email, id:, desc: nil, email: nil, first_name: nil, last_name: nil, limit: nil, next_id: nil, offset: nil, referral_status: nil, sort_by: nil, request_options: {})
217
+ #
218
+ # @param participant_id_or_email [String] Path param: GrowSurf participant ID or URL-encoded participant email address.
219
+ #
220
+ # @param id [String] Path param: GrowSurf program ID.
221
+ #
222
+ # @param desc [Boolean] Query param: Return results in descending order when true.
223
+ #
224
+ # @param email [String] Query param: URL-encoded email value to filter referral results.
225
+ #
226
+ # @param first_name [String] Query param: First name value to filter results.
227
+ #
228
+ # @param last_name [String] Query param: Last name value to filter results.
229
+ #
230
+ # @param limit [Integer] Query param: Number of results to return. Maximum 100.
231
+ #
232
+ # @param next_id [String] Query param: ID to start the next paged result set with.
233
+ #
234
+ # @param offset [Integer] Query param: Offset number used to skip through a result set.
235
+ #
236
+ # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::ReferralStatus] Query param
237
+ #
238
+ # @param sort_by [Symbol, GrowsurfRuby::Models::Campaign::ParticipantListReferralsParams::SortBy] Query param: Field used to sort referral results.
239
+ #
240
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
241
+ #
242
+ # @return [GrowsurfRuby::Models::ReferralList]
243
+ #
244
+ # @see GrowsurfRuby::Models::Campaign::ParticipantListReferralsParams
245
+ def list_referrals(participant_id_or_email, params)
246
+ parsed, options = GrowsurfRuby::Campaign::ParticipantListReferralsParams.dump_request(params)
247
+ query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
248
+ id =
249
+ parsed.delete(:id) do
250
+ raise ArgumentError.new("missing required path argument #{_1}")
251
+ end
252
+ @client.request(
253
+ method: :get,
254
+ path: ["campaign/%1$s/participant/%2$s/referrals", id, participant_id_or_email],
255
+ query: query.transform_keys(
256
+ first_name: "firstName",
257
+ last_name: "lastName",
258
+ next_id: "nextId",
259
+ referral_status: "referralStatus",
260
+ sort_by: "sortBy"
261
+ ),
262
+ model: GrowsurfRuby::ReferralList,
263
+ options: options
264
+ )
265
+ end
266
+
267
+ # Retrieves a paged list of rewards earned by a participant.
268
+ #
269
+ # @overload list_rewards(participant_id_or_email, id:, limit: nil, next_id: nil, request_options: {})
270
+ #
271
+ # @param participant_id_or_email [String] Path param: GrowSurf participant ID or URL-encoded participant email address.
272
+ #
273
+ # @param id [String] Path param: GrowSurf program ID.
274
+ #
275
+ # @param limit [Integer] Query param: Number of results to return. Maximum 100.
276
+ #
277
+ # @param next_id [String] Query param: ID to start the next paged result set with.
278
+ #
279
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
280
+ #
281
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantListRewardsResponse]
282
+ #
283
+ # @see GrowsurfRuby::Models::Campaign::ParticipantListRewardsParams
284
+ def list_rewards(participant_id_or_email, params)
285
+ parsed, options = GrowsurfRuby::Campaign::ParticipantListRewardsParams.dump_request(params)
286
+ query = GrowsurfRuby::Internal::Util.encode_query_params(parsed)
287
+ id =
288
+ parsed.delete(:id) do
289
+ raise ArgumentError.new("missing required path argument #{_1}")
290
+ end
291
+ @client.request(
292
+ method: :get,
293
+ path: ["campaign/%1$s/participant/%2$s/rewards", id, participant_id_or_email],
294
+ query: query.transform_keys(next_id: "nextId"),
295
+ model: GrowsurfRuby::Models::Campaign::ParticipantListRewardsResponse,
296
+ options: options
297
+ )
298
+ end
299
+
300
+ # Records a sale made by a referred customer and generates affiliate commissions
301
+ # for their referrer when applicable.
302
+ #
303
+ # @overload record_transaction(participant_id_or_email, id:, currency:, gross_amount:, amount_cash_net: nil, amount_paid: nil, charge_id: nil, customer_id: nil, description: nil, external_id: nil, invoice_id: nil, invoice_subtotal_excluding_tax: nil, invoice_total: nil, invoice_total_excluding_tax: nil, net_amount: nil, order_id: nil, paid_at: nil, payment_id: nil, payment_intent_id: nil, subscription_id: nil, tax_amount: nil, total_tax_amount: nil, total_tax_amounts: nil, total_taxes: nil, transaction_id: nil, request_options: {})
304
+ #
305
+ # @param participant_id_or_email [String] Path param: GrowSurf participant ID or URL-encoded participant email address.
306
+ #
307
+ # @param id [String] Path param: GrowSurf program ID.
308
+ #
309
+ # @param currency [String] Body param
310
+ #
311
+ # @param gross_amount [Integer] Body param
312
+ #
313
+ # @param amount_cash_net [Integer] Body param
314
+ #
315
+ # @param amount_paid [Integer] Body param
316
+ #
317
+ # @param charge_id [String] Body param
318
+ #
319
+ # @param customer_id [String] Body param
320
+ #
321
+ # @param description [String] Body param
322
+ #
323
+ # @param external_id [String] Body param
324
+ #
325
+ # @param invoice_id [String] Body param
326
+ #
327
+ # @param invoice_subtotal_excluding_tax [Integer] Body param
328
+ #
329
+ # @param invoice_total [Integer] Body param
330
+ #
331
+ # @param invoice_total_excluding_tax [Integer] Body param
332
+ #
333
+ # @param net_amount [Integer] Body param
334
+ #
335
+ # @param order_id [String] Body param
336
+ #
337
+ # @param paid_at [Integer] Body param
338
+ #
339
+ # @param payment_id [String] Body param
340
+ #
341
+ # @param payment_intent_id [String] Body param
342
+ #
343
+ # @param subscription_id [String] Body param
344
+ #
345
+ # @param tax_amount [Integer] Body param
346
+ #
347
+ # @param total_tax_amount [Integer] Body param
348
+ #
349
+ # @param total_tax_amounts [Array<Hash{Symbol=>Object}>] Body param
350
+ #
351
+ # @param total_taxes [Array<Hash{Symbol=>Object}>] Body param
352
+ #
353
+ # @param transaction_id [String] Body param
354
+ #
355
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
356
+ #
357
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantRecordTransactionResponse::UnionMember0, GrowsurfRuby::Models::Campaign::ParticipantRecordTransactionResponse::UnionMember1]
358
+ #
359
+ # @see GrowsurfRuby::Models::Campaign::ParticipantRecordTransactionParams
360
+ def record_transaction(participant_id_or_email, params)
361
+ parsed, options = GrowsurfRuby::Campaign::ParticipantRecordTransactionParams.dump_request(params)
362
+ id =
363
+ parsed.delete(:id) do
364
+ raise ArgumentError.new("missing required path argument #{_1}")
365
+ end
366
+ @client.request(
367
+ method: :post,
368
+ path: ["campaign/%1$s/participant/%2$s/transaction", id, participant_id_or_email],
369
+ body: parsed,
370
+ model: GrowsurfRuby::Models::Campaign::ParticipantRecordTransactionResponse,
371
+ options: options
372
+ )
373
+ end
374
+
375
+ # Sends email invites on behalf of a participant to a list of email addresses.
376
+ #
377
+ # @overload send_invites(participant_id_or_email, id:, email_addresses:, message_text:, subject_text:, request_options: {})
378
+ #
379
+ # @param participant_id_or_email [String] Path param: GrowSurf participant ID or URL-encoded participant email address.
380
+ #
381
+ # @param id [String] Path param: GrowSurf program ID.
382
+ #
383
+ # @param email_addresses [Array<String>] Body param
384
+ #
385
+ # @param message_text [String] Body param
386
+ #
387
+ # @param subject_text [String] Body param
388
+ #
389
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
390
+ #
391
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantSendInvitesResponse]
392
+ #
393
+ # @see GrowsurfRuby::Models::Campaign::ParticipantSendInvitesParams
394
+ def send_invites(participant_id_or_email, params)
395
+ parsed, options = GrowsurfRuby::Campaign::ParticipantSendInvitesParams.dump_request(params)
396
+ id =
397
+ parsed.delete(:id) do
398
+ raise ArgumentError.new("missing required path argument #{_1}")
399
+ end
400
+ @client.request(
401
+ method: :post,
402
+ path: ["campaign/%1$s/participant/%2$s/invites", id, participant_id_or_email],
403
+ body: parsed,
404
+ model: GrowsurfRuby::Models::Campaign::ParticipantSendInvitesResponse,
405
+ options: options
406
+ )
407
+ end
408
+
409
+ # Triggers referral credit for an existing referred participant by GrowSurf
410
+ # participant ID or email address.
411
+ #
412
+ # @overload trigger_referral(participant_id_or_email, id:, request_options: {})
413
+ #
414
+ # @param participant_id_or_email [String] GrowSurf participant ID or URL-encoded participant email address.
415
+ #
416
+ # @param id [String] GrowSurf program ID.
417
+ #
418
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
419
+ #
420
+ # @return [GrowsurfRuby::Models::Campaign::ParticipantTriggerReferralResponse]
421
+ #
422
+ # @see GrowsurfRuby::Models::Campaign::ParticipantTriggerReferralParams
423
+ def trigger_referral(participant_id_or_email, params)
424
+ parsed, options = GrowsurfRuby::Campaign::ParticipantTriggerReferralParams.dump_request(params)
425
+ id =
426
+ parsed.delete(:id) do
427
+ raise ArgumentError.new("missing required path argument #{_1}")
428
+ end
429
+ @client.request(
430
+ method: :post,
431
+ path: ["campaign/%1$s/participant/%2$s/ref", id, participant_id_or_email],
432
+ model: GrowsurfRuby::Models::Campaign::ParticipantTriggerReferralResponse,
433
+ options: options
434
+ )
435
+ end
436
+
437
+ # @api private
438
+ #
439
+ # @param client [GrowsurfRuby::Client]
440
+ def initialize(client:)
441
+ @client = client
442
+ end
443
+ end
444
+ end
445
+ end
446
+ end
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Resources
5
+ class Campaign
6
+ # Participant reward retrieval and manual reward operations.
7
+ class Reward
8
+ # Removes a manually approved participant reward that has not already been
9
+ # approved.
10
+ #
11
+ # @overload delete(reward_id, id:, request_options: {})
12
+ #
13
+ # @param reward_id [String] Participant reward ID.
14
+ #
15
+ # @param id [String] GrowSurf program ID.
16
+ #
17
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
18
+ #
19
+ # @return [GrowsurfRuby::Models::Campaign::RewardDeleteResponse]
20
+ #
21
+ # @see GrowsurfRuby::Models::Campaign::RewardDeleteParams
22
+ def delete(reward_id, params)
23
+ parsed, options = GrowsurfRuby::Campaign::RewardDeleteParams.dump_request(params)
24
+ id =
25
+ parsed.delete(:id) do
26
+ raise ArgumentError.new("missing required path argument #{_1}")
27
+ end
28
+ @client.request(
29
+ method: :delete,
30
+ path: ["campaign/%1$s/reward/%2$s", id, reward_id],
31
+ model: GrowsurfRuby::Models::Campaign::RewardDeleteResponse,
32
+ options: options
33
+ )
34
+ end
35
+
36
+ # Approves a manually approved reward earned by a participant.
37
+ #
38
+ # @overload approve(reward_id, id:, fulfill: nil, request_options: {})
39
+ #
40
+ # @param reward_id [String] Path param: Participant reward ID.
41
+ #
42
+ # @param id [String] Path param: GrowSurf program ID.
43
+ #
44
+ # @param fulfill [Boolean] Body param: Set true to mark the reward as fulfilled after approval.
45
+ #
46
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
47
+ #
48
+ # @return [GrowsurfRuby::Models::Campaign::RewardApproveResponse]
49
+ #
50
+ # @see GrowsurfRuby::Models::Campaign::RewardApproveParams
51
+ def approve(reward_id, params)
52
+ parsed, options = GrowsurfRuby::Campaign::RewardApproveParams.dump_request(params)
53
+ id =
54
+ parsed.delete(:id) do
55
+ raise ArgumentError.new("missing required path argument #{_1}")
56
+ end
57
+ @client.request(
58
+ method: :post,
59
+ path: ["campaign/%1$s/reward/%2$s/approve", id, reward_id],
60
+ body: parsed,
61
+ model: GrowsurfRuby::Models::Campaign::RewardApproveResponse,
62
+ options: options
63
+ )
64
+ end
65
+
66
+ # Marks an approved participant reward as fulfilled.
67
+ #
68
+ # @overload fulfill(reward_id, id:, request_options: {})
69
+ #
70
+ # @param reward_id [String] Participant reward ID.
71
+ #
72
+ # @param id [String] GrowSurf program ID.
73
+ #
74
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
75
+ #
76
+ # @return [GrowsurfRuby::Models::Campaign::RewardFulfillResponse]
77
+ #
78
+ # @see GrowsurfRuby::Models::Campaign::RewardFulfillParams
79
+ def fulfill(reward_id, params)
80
+ parsed, options = GrowsurfRuby::Campaign::RewardFulfillParams.dump_request(params)
81
+ id =
82
+ parsed.delete(:id) do
83
+ raise ArgumentError.new("missing required path argument #{_1}")
84
+ end
85
+ @client.request(
86
+ method: :post,
87
+ path: ["campaign/%1$s/reward/%2$s/fulfill", id, reward_id],
88
+ model: GrowsurfRuby::Models::Campaign::RewardFulfillResponse,
89
+ options: options
90
+ )
91
+ end
92
+
93
+ # @api private
94
+ #
95
+ # @param client [GrowsurfRuby::Client]
96
+ def initialize(client:)
97
+ @client = client
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end