trophy_api_client 1.14.0 → 1.27.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 (639) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +9 -0
  3. data/.rubocop.yml +103 -0
  4. data/CONTRIBUTING.md +120 -0
  5. data/LICENSE +21 -0
  6. data/README.md +50 -0
  7. data/Rakefile +13 -0
  8. data/custom.gemspec.rb +5 -0
  9. data/lib/gemconfig.rb +1 -1
  10. data/lib/trophy/achievements/client.rb +93 -0
  11. data/lib/trophy/achievements/types/achievements_all_request.rb +11 -0
  12. data/lib/trophy/achievements/types/achievements_complete_request.rb +13 -0
  13. data/lib/trophy/admin/achievements/client.rb +201 -0
  14. data/lib/trophy/admin/achievements/types/achievements_delete_request.rb +13 -0
  15. data/lib/trophy/admin/achievements/types/achievements_list_request.rb +15 -0
  16. data/lib/trophy/admin/application_api_keys/client.rb +93 -0
  17. data/lib/trophy/admin/application_api_keys/types/application_api_keys_delete_request.rb +13 -0
  18. data/lib/trophy/admin/attributes/client.rb +200 -0
  19. data/lib/trophy/admin/attributes/types/attributes_delete_request.rb +13 -0
  20. data/lib/trophy/admin/attributes/types/attributes_list_request.rb +15 -0
  21. data/lib/trophy/admin/client.rb +68 -0
  22. data/lib/trophy/admin/environments/client.rb +52 -0
  23. data/lib/trophy/admin/leaderboards/client.rb +201 -0
  24. data/lib/trophy/admin/leaderboards/types/leaderboards_delete_request.rb +13 -0
  25. data/lib/trophy/admin/leaderboards/types/leaderboards_list_request.rb +15 -0
  26. data/lib/trophy/admin/metrics/client.rb +234 -0
  27. data/lib/trophy/admin/metrics/types/metrics_delete_request.rb +13 -0
  28. data/lib/trophy/admin/metrics/types/metrics_list_request.rb +15 -0
  29. data/lib/trophy/admin/points/boosts/client.rb +207 -0
  30. data/lib/trophy/admin/points/boosts/types/boosts_delete_request.rb +17 -0
  31. data/lib/trophy/admin/points/boosts/types/boosts_list_request.rb +19 -0
  32. data/lib/trophy/admin/points/client.rb +40 -0
  33. data/lib/trophy/admin/points/levels/client.rb +207 -0
  34. data/lib/trophy/admin/points/levels/types/levels_delete_request.rb +17 -0
  35. data/lib/trophy/admin/points/levels/types/levels_list_request.rb +19 -0
  36. data/lib/trophy/admin/points/systems/client.rb +203 -0
  37. data/lib/trophy/admin/points/systems/types/systems_delete_request.rb +15 -0
  38. data/lib/trophy/admin/points/systems/types/systems_list_request.rb +17 -0
  39. data/lib/trophy/admin/points/triggers/client.rb +208 -0
  40. data/lib/trophy/admin/points/triggers/types/triggers_delete_request.rb +17 -0
  41. data/lib/trophy/admin/points/triggers/types/triggers_list_request.rb +19 -0
  42. data/lib/trophy/admin/settings/client.rb +86 -0
  43. data/lib/trophy/admin/settings/types/update_admin_settings_request.rb +17 -0
  44. data/lib/trophy/admin/streaks/client.rb +106 -0
  45. data/lib/trophy/admin/streaks/freezes/client.rb +56 -0
  46. data/lib/trophy/admin/streaks/freezes/types/create_streak_freezes_request.rb +15 -0
  47. data/lib/trophy/admin/streaks/freezes/types/create_streak_freezes_request_freezes_item.rb +15 -0
  48. data/lib/trophy/admin/streaks/pauses/client.rb +95 -0
  49. data/lib/trophy/admin/streaks/pauses/types/create_streak_pauses_request.rb +15 -0
  50. data/lib/trophy/admin/streaks/pauses/types/create_streak_pauses_request_pauses_item.rb +19 -0
  51. data/lib/trophy/admin/streaks/pauses/types/pauses_delete_request.rb +15 -0
  52. data/lib/trophy/admin/streaks/settings/client.rb +88 -0
  53. data/lib/trophy/admin/streaks/settings/types/update_streak_settings_request.rb +25 -0
  54. data/lib/trophy/admin/streaks/types/reset_streaks_request.rb +13 -0
  55. data/lib/trophy/admin/streaks/types/reset_streaks_request_users_item.rb +13 -0
  56. data/lib/trophy/admin/streaks/types/restore_streaks_request.rb +13 -0
  57. data/lib/trophy/admin/streaks/types/restore_streaks_request_users_item.rb +13 -0
  58. data/lib/trophy/admin/tenants/client.rb +200 -0
  59. data/lib/trophy/admin/tenants/types/tenants_delete_request.rb +13 -0
  60. data/lib/trophy/admin/tenants/types/tenants_list_request.rb +15 -0
  61. data/lib/trophy/client.rb +62 -0
  62. data/lib/{environment.rb → trophy/environment.rb} +1 -1
  63. data/lib/trophy/errors/api_error.rb +8 -0
  64. data/lib/trophy/errors/client_error.rb +17 -0
  65. data/lib/trophy/errors/redirect_error.rb +8 -0
  66. data/lib/trophy/errors/response_error.rb +42 -0
  67. data/lib/trophy/errors/server_error.rb +11 -0
  68. data/lib/trophy/errors/timeout_error.rb +8 -0
  69. data/lib/trophy/internal/errors/constraint_error.rb +10 -0
  70. data/lib/trophy/internal/errors/type_error.rb +10 -0
  71. data/lib/trophy/internal/http/base_request.rb +51 -0
  72. data/lib/trophy/internal/http/raw_client.rb +215 -0
  73. data/lib/trophy/internal/iterators/cursor_item_iterator.rb +28 -0
  74. data/lib/trophy/internal/iterators/cursor_page_iterator.rb +63 -0
  75. data/lib/trophy/internal/iterators/item_iterator.rb +65 -0
  76. data/lib/trophy/internal/iterators/offset_item_iterator.rb +30 -0
  77. data/lib/trophy/internal/iterators/offset_page_iterator.rb +103 -0
  78. data/lib/trophy/internal/json/request.rb +41 -0
  79. data/lib/trophy/internal/json/serializable.rb +25 -0
  80. data/lib/trophy/internal/multipart/multipart_encoder.rb +141 -0
  81. data/lib/trophy/internal/multipart/multipart_form_data.rb +78 -0
  82. data/lib/trophy/internal/multipart/multipart_form_data_part.rb +51 -0
  83. data/lib/trophy/internal/multipart/multipart_request.rb +40 -0
  84. data/lib/trophy/internal/types/array.rb +47 -0
  85. data/lib/trophy/internal/types/boolean.rb +34 -0
  86. data/lib/trophy/internal/types/enum.rb +56 -0
  87. data/lib/trophy/internal/types/hash.rb +36 -0
  88. data/lib/trophy/internal/types/model/field.rb +38 -0
  89. data/lib/trophy/internal/types/model.rb +208 -0
  90. data/lib/trophy/internal/types/type.rb +35 -0
  91. data/lib/trophy/internal/types/union.rb +161 -0
  92. data/lib/trophy/internal/types/unknown.rb +15 -0
  93. data/lib/trophy/internal/types/utils.rb +116 -0
  94. data/lib/trophy/leaderboards/client.rb +101 -0
  95. data/lib/trophy/leaderboards/types/leaderboards_all_request.rb +11 -0
  96. data/lib/trophy/leaderboards/types/leaderboards_all_response_item.rb +49 -0
  97. data/lib/trophy/leaderboards/types/leaderboards_all_response_item_status.rb +15 -0
  98. data/lib/trophy/leaderboards/types/leaderboards_get_request.rb +21 -0
  99. data/lib/trophy/metrics/client.rb +62 -0
  100. data/lib/trophy/metrics/types/metrics_event_request.rb +19 -0
  101. data/lib/trophy/points/client.rb +194 -0
  102. data/lib/trophy/points/types/points_boosts_request.rb +13 -0
  103. data/lib/trophy/points/types/points_summary_request.rb +13 -0
  104. data/lib/trophy/streaks/client.rb +56 -0
  105. data/lib/trophy/streaks/types/streaks_list_request.rb +11 -0
  106. data/lib/trophy/types/achievement_completion_response.rb +13 -0
  107. data/lib/trophy/types/achievement_response.rb +37 -0
  108. data/lib/trophy/types/achievement_response_event_attribute.rb +13 -0
  109. data/lib/trophy/types/achievement_response_event_attributes_item.rb +11 -0
  110. data/lib/trophy/types/achievement_response_trigger.rb +15 -0
  111. data/lib/trophy/types/achievement_response_user_attributes_item.rb +11 -0
  112. data/lib/trophy/types/achievement_with_stats_response.rb +41 -0
  113. data/lib/trophy/types/admin_achievement.rb +37 -0
  114. data/lib/trophy/types/admin_achievement_badge.rb +9 -0
  115. data/lib/trophy/types/admin_achievement_event_attributes_item.rb +11 -0
  116. data/lib/trophy/types/admin_achievement_status.rb +13 -0
  117. data/lib/trophy/types/admin_achievement_trigger.rb +15 -0
  118. data/lib/trophy/types/admin_achievement_user_attributes_item.rb +11 -0
  119. data/lib/trophy/types/admin_aggregation_period.rb +12 -0
  120. data/lib/trophy/types/admin_attribute.rb +16 -0
  121. data/lib/trophy/types/admin_attribute_type.rb +12 -0
  122. data/lib/trophy/types/admin_environment.rb +14 -0
  123. data/lib/trophy/types/admin_error_body.rb +9 -0
  124. data/lib/trophy/types/admin_font_family.rb +19 -0
  125. data/lib/trophy/types/admin_issue.rb +20 -0
  126. data/lib/trophy/types/admin_issue_severity.rb +12 -0
  127. data/lib/trophy/types/admin_leaderboard.rb +42 -0
  128. data/lib/trophy/types/admin_leaderboard_rank_by.rb +13 -0
  129. data/lib/trophy/types/admin_leaderboard_run_unit.rb +13 -0
  130. data/lib/trophy/types/admin_leaderboard_status.rb +14 -0
  131. data/lib/trophy/types/admin_leaderboard_user_attributes_item.rb +11 -0
  132. data/lib/trophy/types/admin_points_boost.rb +26 -0
  133. data/lib/trophy/types/admin_points_boost_rounding.rb +13 -0
  134. data/lib/{trophy_api_client/leaderboards/types/leaderboards_all_response_item_status.rb → trophy/types/admin_points_boost_status.rb} +5 -4
  135. data/lib/trophy/types/admin_points_boost_user_attributes_item.rb +11 -0
  136. data/lib/trophy/types/admin_points_level.rb +20 -0
  137. data/lib/trophy/types/admin_points_level_badge.rb +9 -0
  138. data/lib/trophy/types/admin_points_system.rb +22 -0
  139. data/lib/trophy/types/admin_points_system_badge.rb +9 -0
  140. data/lib/trophy/types/admin_points_system_status.rb +12 -0
  141. data/lib/trophy/types/admin_points_trigger.rb +34 -0
  142. data/lib/trophy/types/admin_points_trigger_event_attributes_item.rb +11 -0
  143. data/lib/trophy/types/admin_points_trigger_status.rb +12 -0
  144. data/lib/trophy/types/admin_points_trigger_time_unit.rb +12 -0
  145. data/lib/trophy/types/admin_points_trigger_type.rb +15 -0
  146. data/lib/trophy/types/admin_points_trigger_user_attributes_item.rb +11 -0
  147. data/lib/trophy/types/admin_settings.rb +14 -0
  148. data/lib/trophy/types/admin_settings_branding.rb +20 -0
  149. data/lib/trophy/types/admin_settings_branding_app_icon.rb +9 -0
  150. data/lib/trophy/types/admin_settings_branding_logo.rb +9 -0
  151. data/lib/trophy/types/admin_settings_experimentation.rb +12 -0
  152. data/lib/trophy/types/admin_streak_evaluation_mode.rb +12 -0
  153. data/lib/{trophy_api_client/users/types/users_points_event_summary_request_aggregation.rb → trophy/types/admin_streak_frequency.rb} +5 -3
  154. data/lib/trophy/types/admin_streak_pause.rb +18 -0
  155. data/lib/trophy/types/admin_streak_pause_status.rb +12 -0
  156. data/lib/trophy/types/admin_tenant.rb +20 -0
  157. data/lib/trophy/types/admin_tenant_status.rb +12 -0
  158. data/lib/trophy/types/base_streak_response.rb +27 -0
  159. data/lib/trophy/types/batch_events_response.rb +10 -0
  160. data/lib/trophy/types/batch_metric_event.rb +19 -0
  161. data/lib/trophy/types/batch_metric_event_user.rb +22 -0
  162. data/lib/trophy/types/bulk_streak_response.rb +23 -0
  163. data/lib/trophy/types/bulk_streak_response_item.rb +13 -0
  164. data/lib/trophy/types/create_achievement_request_item.rb +35 -0
  165. data/lib/trophy/types/create_achievement_request_item_badge.rb +10 -0
  166. data/lib/trophy/types/create_achievement_request_item_event_attributes_item.rb +11 -0
  167. data/lib/trophy/types/create_achievement_request_item_status.rb +13 -0
  168. data/lib/trophy/types/create_achievement_request_item_trigger.rb +15 -0
  169. data/lib/trophy/types/create_achievement_request_item_user_attributes_item.rb +11 -0
  170. data/lib/trophy/types/create_achievements_request.rb +23 -0
  171. data/lib/trophy/types/create_achievements_response.rb +12 -0
  172. data/lib/trophy/types/create_application_key_request_item.rb +10 -0
  173. data/lib/trophy/types/create_application_keys_request.rb +23 -0
  174. data/lib/trophy/types/create_application_keys_response.rb +12 -0
  175. data/lib/trophy/types/create_attribute_request_item.rb +14 -0
  176. data/lib/trophy/types/create_attribute_request_item_type.rb +12 -0
  177. data/lib/trophy/types/create_attributes_request.rb +23 -0
  178. data/lib/trophy/types/create_attributes_response.rb +12 -0
  179. data/lib/trophy/types/create_leaderboard_request_item.rb +40 -0
  180. data/lib/trophy/types/create_leaderboard_request_item_rank_by.rb +13 -0
  181. data/lib/trophy/types/create_leaderboard_request_item_run_unit.rb +13 -0
  182. data/lib/trophy/types/create_leaderboard_request_item_status.rb +14 -0
  183. data/lib/trophy/types/create_leaderboard_request_item_user_attributes_item.rb +11 -0
  184. data/lib/trophy/types/create_leaderboards_request.rb +23 -0
  185. data/lib/trophy/types/create_leaderboards_response.rb +12 -0
  186. data/lib/trophy/types/create_metric_request_item.rb +16 -0
  187. data/lib/trophy/types/create_metric_request_item_unit_type.rb +12 -0
  188. data/lib/trophy/types/create_metrics_request.rb +23 -0
  189. data/lib/trophy/types/create_metrics_response.rb +12 -0
  190. data/lib/trophy/types/create_points_boost_request_item.rb +23 -0
  191. data/lib/trophy/types/create_points_boost_request_item_rounding.rb +13 -0
  192. data/lib/trophy/types/create_points_boost_request_item_user_attributes_item.rb +11 -0
  193. data/lib/trophy/types/create_points_boosts_request.rb +23 -0
  194. data/lib/trophy/types/create_points_boosts_response.rb +12 -0
  195. data/lib/trophy/types/create_points_level_request_item.rb +18 -0
  196. data/lib/trophy/types/create_points_level_request_item_badge.rb +10 -0
  197. data/lib/trophy/types/create_points_levels_request.rb +23 -0
  198. data/lib/trophy/types/create_points_levels_response.rb +12 -0
  199. data/lib/trophy/types/create_points_system_request_item.rb +24 -0
  200. data/lib/trophy/types/create_points_system_request_item_badge.rb +9 -0
  201. data/lib/trophy/types/create_points_systems_request.rb +23 -0
  202. data/lib/trophy/types/create_points_systems_response.rb +12 -0
  203. data/lib/trophy/types/create_points_trigger_request_item.rb +32 -0
  204. data/lib/trophy/types/create_points_trigger_request_item_event_attributes_item.rb +11 -0
  205. data/lib/trophy/types/create_points_trigger_request_item_status.rb +12 -0
  206. data/lib/trophy/types/create_points_trigger_request_item_time_unit.rb +12 -0
  207. data/lib/trophy/types/create_points_trigger_request_item_type.rb +15 -0
  208. data/lib/trophy/types/create_points_trigger_request_item_user_attributes_item.rb +11 -0
  209. data/lib/trophy/types/create_points_triggers_request.rb +23 -0
  210. data/lib/trophy/types/create_points_triggers_response.rb +12 -0
  211. data/lib/trophy/types/create_streak_freezes_response.rb +10 -0
  212. data/lib/trophy/types/create_streak_pauses_response.rb +12 -0
  213. data/lib/trophy/types/create_tenant_request_item.rb +12 -0
  214. data/lib/trophy/types/create_tenants_request.rb +23 -0
  215. data/lib/trophy/types/create_tenants_response.rb +12 -0
  216. data/lib/trophy/types/created_admin_points_system.rb +29 -0
  217. data/lib/trophy/types/created_application_key.rb +16 -0
  218. data/lib/trophy/types/created_metric.rb +18 -0
  219. data/lib/trophy/types/created_metric_unit_type.rb +12 -0
  220. data/lib/trophy/types/delete_achievements_response.rb +13 -0
  221. data/lib/trophy/types/delete_application_keys_response.rb +12 -0
  222. data/lib/trophy/types/delete_attributes_response.rb +13 -0
  223. data/lib/trophy/types/delete_leaderboards_response.rb +12 -0
  224. data/lib/trophy/types/delete_metrics_response.rb +13 -0
  225. data/lib/trophy/types/delete_points_boosts_response.rb +12 -0
  226. data/lib/trophy/types/delete_points_levels_response.rb +12 -0
  227. data/lib/trophy/types/delete_points_systems_response.rb +12 -0
  228. data/lib/trophy/types/delete_points_triggers_response.rb +12 -0
  229. data/lib/trophy/types/delete_streak_pauses_response.rb +12 -0
  230. data/lib/trophy/types/delete_tenants_response.rb +12 -0
  231. data/lib/trophy/types/deleted_resource.rb +10 -0
  232. data/lib/trophy/types/error_body.rb +9 -0
  233. data/lib/trophy/types/event_response.rb +25 -0
  234. data/lib/trophy/types/get_user_points_response.rb +25 -0
  235. data/lib/trophy/types/leaderboard_event.rb +20 -0
  236. data/lib/trophy/types/leaderboard_ranking.rb +16 -0
  237. data/lib/trophy/types/leaderboard_response.rb +46 -0
  238. data/lib/trophy/types/leaderboard_response_rank_by.rb +13 -0
  239. data/lib/trophy/types/leaderboard_response_run_unit.rb +13 -0
  240. data/lib/trophy/types/leaderboard_response_user_attributes_item.rb +11 -0
  241. data/lib/trophy/types/leaderboard_response_with_rankings.rb +49 -0
  242. data/lib/trophy/types/leaderboard_response_with_rankings_status.rb +13 -0
  243. data/lib/trophy/types/list_achievements_response.rb +23 -0
  244. data/lib/trophy/types/list_attributes_response.rb +23 -0
  245. data/lib/trophy/types/list_environments_response.rb +23 -0
  246. data/lib/trophy/types/list_leaderboards_response.rb +23 -0
  247. data/lib/trophy/types/list_metrics_response.rb +23 -0
  248. data/lib/trophy/types/list_points_boosts_response.rb +23 -0
  249. data/lib/trophy/types/list_points_levels_response.rb +23 -0
  250. data/lib/trophy/types/list_points_systems_response.rb +23 -0
  251. data/lib/trophy/types/list_points_triggers_response.rb +23 -0
  252. data/lib/trophy/types/list_tenants_response.rb +23 -0
  253. data/lib/trophy/types/metric_event_leaderboard_response.rb +55 -0
  254. data/lib/trophy/types/metric_event_leaderboard_response_breakdown_attribute_values_item.rb +11 -0
  255. data/lib/trophy/types/metric_event_points_response.rb +28 -0
  256. data/lib/trophy/types/metric_event_streak_response.rb +30 -0
  257. data/lib/trophy/types/metric_response.rb +17 -0
  258. data/lib/trophy/types/notification_channel.rb +12 -0
  259. data/lib/trophy/types/notification_preferences.rb +16 -0
  260. data/lib/trophy/types/patch_points_boosts_request.rb +23 -0
  261. data/lib/trophy/types/patch_points_boosts_request_item.rb +21 -0
  262. data/lib/trophy/types/patch_points_boosts_request_item_rounding.rb +13 -0
  263. data/lib/trophy/types/patch_points_boosts_request_item_user_attributes_item.rb +11 -0
  264. data/lib/trophy/types/patch_points_boosts_response.rb +12 -0
  265. data/lib/trophy/types/patch_points_levels_request.rb +23 -0
  266. data/lib/trophy/types/patch_points_levels_request_item.rb +17 -0
  267. data/lib/trophy/types/patch_points_levels_request_item_badge.rb +9 -0
  268. data/lib/trophy/types/patch_points_levels_response.rb +12 -0
  269. data/lib/trophy/types/patch_points_triggers_request.rb +23 -0
  270. data/lib/trophy/types/patch_points_triggers_request_item.rb +33 -0
  271. data/lib/trophy/types/patch_points_triggers_request_item_event_attributes_item.rb +11 -0
  272. data/lib/trophy/types/patch_points_triggers_request_item_status.rb +12 -0
  273. data/lib/trophy/types/patch_points_triggers_request_item_time_unit.rb +12 -0
  274. data/lib/trophy/types/patch_points_triggers_request_item_type.rb +15 -0
  275. data/lib/trophy/types/patch_points_triggers_request_item_user_attributes_item.rb +11 -0
  276. data/lib/trophy/types/patch_points_triggers_response.rb +12 -0
  277. data/lib/trophy/types/points_award.rb +19 -0
  278. data/lib/trophy/types/points_boost.rb +21 -0
  279. data/lib/trophy/types/points_boost_rounding.rb +13 -0
  280. data/lib/trophy/types/points_boost_status.rb +13 -0
  281. data/lib/trophy/types/points_boost_webhook_payload.rb +30 -0
  282. data/lib/trophy/types/points_boost_webhook_payload_rounding.rb +13 -0
  283. data/lib/trophy/types/points_boost_webhook_payload_status.rb +12 -0
  284. data/lib/trophy/types/points_level.rb +20 -0
  285. data/lib/trophy/types/points_level_summary_response.rb +23 -0
  286. data/lib/trophy/types/points_level_summary_response_item.rb +11 -0
  287. data/lib/trophy/types/points_range.rb +13 -0
  288. data/lib/trophy/types/points_response.rb +20 -0
  289. data/lib/trophy/types/points_summary_response.rb +23 -0
  290. data/lib/trophy/types/points_system_response.rb +19 -0
  291. data/lib/trophy/types/points_trigger.rb +41 -0
  292. data/lib/trophy/types/points_trigger_event_attribute.rb +13 -0
  293. data/lib/trophy/types/points_trigger_event_attributes_item.rb +11 -0
  294. data/lib/trophy/types/points_trigger_status.rb +13 -0
  295. data/lib/trophy/types/points_trigger_time_unit.rb +12 -0
  296. data/lib/trophy/types/points_trigger_type.rb +15 -0
  297. data/lib/trophy/types/points_trigger_user_attributes_item.rb +11 -0
  298. data/lib/trophy/types/reset_streaks_response.rb +12 -0
  299. data/lib/trophy/types/restore_streaks_response.rb +12 -0
  300. data/lib/trophy/types/streak_evaluation_mode_preference.rb +12 -0
  301. data/lib/{trophy_api_client/users/types/users_metric_event_summary_request_aggregation.rb → trophy/types/streak_frequency.rb} +5 -3
  302. data/lib/trophy/types/streak_metric_preference.rb +12 -0
  303. data/lib/trophy/types/streak_preferences.rb +17 -0
  304. data/lib/trophy/types/streak_response.rb +34 -0
  305. data/lib/trophy/types/streak_response_pauses_item.rb +14 -0
  306. data/lib/trophy/types/streak_response_streak_history_item.rb +20 -0
  307. data/lib/trophy/types/streak_settings.rb +20 -0
  308. data/lib/trophy/types/streak_settings_freezes.rb +16 -0
  309. data/lib/trophy/types/streak_settings_metric.rb +12 -0
  310. data/lib/trophy/types/update_achievement_request_item.rb +37 -0
  311. data/lib/trophy/types/update_achievement_request_item_badge.rb +9 -0
  312. data/lib/trophy/types/update_achievement_request_item_event_attributes_item.rb +11 -0
  313. data/lib/trophy/types/update_achievement_request_item_status.rb +13 -0
  314. data/lib/trophy/types/update_achievement_request_item_trigger.rb +15 -0
  315. data/lib/trophy/types/update_achievement_request_item_user_attributes_item.rb +11 -0
  316. data/lib/trophy/types/update_achievements_request.rb +23 -0
  317. data/lib/trophy/types/update_achievements_response.rb +12 -0
  318. data/lib/trophy/types/update_admin_settings_branding.rb +20 -0
  319. data/lib/trophy/types/update_admin_settings_branding_app_icon.rb +9 -0
  320. data/lib/trophy/types/update_admin_settings_branding_logo.rb +9 -0
  321. data/lib/trophy/types/update_admin_settings_experimentation.rb +12 -0
  322. data/lib/trophy/types/update_attribute_request_item.rb +13 -0
  323. data/lib/trophy/types/update_attributes_request.rb +23 -0
  324. data/lib/trophy/types/update_attributes_response.rb +12 -0
  325. data/lib/trophy/types/update_leaderboard_request_item.rb +43 -0
  326. data/lib/trophy/types/update_leaderboard_request_item_rank_by.rb +13 -0
  327. data/lib/trophy/types/update_leaderboard_request_item_run_unit.rb +13 -0
  328. data/lib/trophy/types/update_leaderboard_request_item_status.rb +14 -0
  329. data/lib/trophy/types/update_leaderboard_request_item_user_attributes_item.rb +11 -0
  330. data/lib/trophy/types/update_leaderboards_request.rb +23 -0
  331. data/lib/trophy/types/update_leaderboards_response.rb +12 -0
  332. data/lib/trophy/types/update_metric_request_item.rb +17 -0
  333. data/lib/trophy/types/update_metric_request_item_unit_type.rb +12 -0
  334. data/lib/trophy/types/update_metrics_request.rb +23 -0
  335. data/lib/trophy/types/update_metrics_response.rb +12 -0
  336. data/lib/trophy/types/update_points_system_request_item.rb +18 -0
  337. data/lib/trophy/types/update_points_system_request_item_badge.rb +9 -0
  338. data/lib/trophy/types/update_points_systems_request.rb +23 -0
  339. data/lib/trophy/types/update_points_systems_response.rb +12 -0
  340. data/lib/trophy/types/update_streak_settings_freezes.rb +17 -0
  341. data/lib/trophy/types/update_tenant_request_item.rb +14 -0
  342. data/lib/trophy/types/update_tenants_request.rb +23 -0
  343. data/lib/trophy/types/update_tenants_response.rb +12 -0
  344. data/lib/trophy/types/updated_user.rb +22 -0
  345. data/lib/trophy/types/upserted_user.rb +24 -0
  346. data/lib/trophy/types/user.rb +30 -0
  347. data/lib/trophy/types/user_achievement_response.rb +39 -0
  348. data/lib/trophy/types/user_achievement_with_stats_response.rb +43 -0
  349. data/lib/trophy/types/user_leaderboard_response.rb +50 -0
  350. data/lib/trophy/types/user_leaderboard_response_with_history.rb +52 -0
  351. data/lib/trophy/types/user_preferences_response.rb +12 -0
  352. data/lib/trophy/types/webhook_user_leaderboard_response.rb +54 -0
  353. data/lib/trophy/types/webhooks_achievement_completed_payload.rb +13 -0
  354. data/lib/trophy/types/webhooks_emails_achievement_due_payload.rb +15 -0
  355. data/lib/trophy/types/webhooks_emails_reactivation_due_payload.rb +15 -0
  356. data/lib/trophy/types/webhooks_emails_reactivation_due_payload_reactivation.rb +12 -0
  357. data/lib/trophy/types/webhooks_emails_recap_due_payload.rb +15 -0
  358. data/lib/trophy/types/webhooks_emails_recap_due_payload_recap.rb +12 -0
  359. data/lib/trophy/types/webhooks_emails_streak_reminder_due_payload.rb +15 -0
  360. data/lib/trophy/types/webhooks_leaderboard_changed_payload.rb +11 -0
  361. data/lib/trophy/types/webhooks_leaderboard_finished_payload.rb +11 -0
  362. data/lib/trophy/types/webhooks_leaderboard_rank_changed_payload.rb +13 -0
  363. data/lib/trophy/types/webhooks_leaderboard_started_payload.rb +11 -0
  364. data/lib/trophy/types/webhooks_points_boost_finished_payload.rb +13 -0
  365. data/lib/trophy/types/webhooks_points_boost_started_payload.rb +13 -0
  366. data/lib/trophy/types/webhooks_points_changed_payload.rb +13 -0
  367. data/lib/trophy/types/webhooks_points_level_changed_payload.rb +17 -0
  368. data/lib/trophy/types/webhooks_points_level_changed_payload_points.rb +22 -0
  369. data/lib/trophy/types/webhooks_streak_extended_payload.rb +13 -0
  370. data/lib/trophy/types/webhooks_streak_freeze_consumed_payload.rb +15 -0
  371. data/lib/trophy/types/webhooks_streak_freeze_earned_payload.rb +15 -0
  372. data/lib/trophy/types/webhooks_streak_lost_payload.rb +13 -0
  373. data/lib/trophy/types/webhooks_streak_started_payload.rb +13 -0
  374. data/lib/trophy/types/wrapped_activity.rb +22 -0
  375. data/lib/trophy/types/wrapped_activity_period.rb +16 -0
  376. data/lib/trophy/types/wrapped_entire_year.rb +18 -0
  377. data/lib/trophy/types/wrapped_metric.rb +22 -0
  378. data/lib/trophy/types/wrapped_metric_by_attribute_value_value.rb +19 -0
  379. data/lib/trophy/types/wrapped_most_active_day.rb +18 -0
  380. data/lib/trophy/types/wrapped_most_active_month.rb +18 -0
  381. data/lib/trophy/types/wrapped_most_active_week.rb +20 -0
  382. data/lib/trophy/types/wrapped_points.rb +20 -0
  383. data/lib/trophy/types/wrapped_response.rb +13 -0
  384. data/lib/trophy/types/wrapped_streak.rb +18 -0
  385. data/lib/trophy/users/client.rb +612 -0
  386. data/lib/trophy/users/types/update_user_preferences_request.rb +15 -0
  387. data/lib/trophy/users/types/users_achievements_request.rb +13 -0
  388. data/lib/trophy/users/types/users_leaderboard_request.rb +17 -0
  389. data/lib/trophy/users/types/users_metric_event_summary_request.rb +19 -0
  390. data/lib/trophy/users/types/users_metric_event_summary_request_aggregation.rb +15 -0
  391. data/lib/trophy/users/types/users_metric_event_summary_response_item.rb +15 -0
  392. data/lib/trophy/users/types/users_points_event_summary_request.rb +19 -0
  393. data/lib/trophy/users/types/users_points_event_summary_request_aggregation.rb +15 -0
  394. data/lib/trophy/users/types/users_points_event_summary_response_item.rb +15 -0
  395. data/lib/trophy/users/types/users_points_request.rb +15 -0
  396. data/lib/trophy/users/types/users_streak_request.rb +13 -0
  397. data/lib/trophy/users/types/users_wrapped_request.rb +13 -0
  398. data/lib/trophy/version.rb +5 -0
  399. data/lib/trophy.rb +394 -0
  400. data/lib/trophy_api_client.rb +4 -101
  401. data/reference.md +6128 -0
  402. metadata +407 -333
  403. data/lib/requests.rb +0 -189
  404. data/lib/trophy_api_client/achievements/client.rb +0 -196
  405. data/lib/trophy_api_client/admin/attributes/client.rb +0 -378
  406. data/lib/trophy_api_client/admin/client.rb +0 -65
  407. data/lib/trophy_api_client/admin/leaderboards/client.rb +0 -381
  408. data/lib/trophy_api_client/admin/metrics/client.rb +0 -376
  409. data/lib/trophy_api_client/admin/points/boosts/client.rb +0 -410
  410. data/lib/trophy_api_client/admin/points/client.rb +0 -53
  411. data/lib/trophy_api_client/admin/points/levels/client.rb +0 -412
  412. data/lib/trophy_api_client/admin/points/systems/client.rb +0 -384
  413. data/lib/trophy_api_client/admin/points/triggers/client.rb +0 -412
  414. data/lib/trophy_api_client/admin/streaks/client.rb +0 -106
  415. data/lib/trophy_api_client/admin/streaks/freezes/client.rb +0 -100
  416. data/lib/trophy_api_client/admin/streaks/freezes/types/create_streak_freezes_request_freezes_item.rb +0 -62
  417. data/lib/trophy_api_client/admin/streaks/types/restore_streaks_request_users_item.rb +0 -59
  418. data/lib/trophy_api_client/admin/tenants/client.rb +0 -376
  419. data/lib/trophy_api_client/leaderboards/client.rb +0 -225
  420. data/lib/trophy_api_client/leaderboards/types/leaderboards_all_response_item.rb +0 -202
  421. data/lib/trophy_api_client/metrics/client.rb +0 -142
  422. data/lib/trophy_api_client/points/client.rb +0 -424
  423. data/lib/trophy_api_client/streaks/client.rb +0 -104
  424. data/lib/trophy_api_client/types/achievement_completion_response.rb +0 -83
  425. data/lib/trophy_api_client/types/achievement_response.rb +0 -198
  426. data/lib/trophy_api_client/types/achievement_response_event_attribute.rb +0 -67
  427. data/lib/trophy_api_client/types/achievement_response_event_attributes_item.rb +0 -66
  428. data/lib/trophy_api_client/types/achievement_response_trigger.rb +0 -11
  429. data/lib/trophy_api_client/types/achievement_response_user_attributes_item.rb +0 -66
  430. data/lib/trophy_api_client/types/achievement_with_stats_response.rb +0 -214
  431. data/lib/trophy_api_client/types/admin_attribute.rb +0 -81
  432. data/lib/trophy_api_client/types/admin_attribute_type.rb +0 -9
  433. data/lib/trophy_api_client/types/admin_issue.rb +0 -98
  434. data/lib/trophy_api_client/types/admin_issue_severity.rb +0 -9
  435. data/lib/trophy_api_client/types/admin_leaderboard.rb +0 -171
  436. data/lib/trophy_api_client/types/admin_leaderboard_rank_by.rb +0 -10
  437. data/lib/trophy_api_client/types/admin_leaderboard_run_unit.rb +0 -10
  438. data/lib/trophy_api_client/types/admin_leaderboard_status.rb +0 -11
  439. data/lib/trophy_api_client/types/admin_points_boost.rb +0 -138
  440. data/lib/trophy_api_client/types/admin_points_boost_rounding.rb +0 -10
  441. data/lib/trophy_api_client/types/admin_points_boost_status.rb +0 -10
  442. data/lib/trophy_api_client/types/admin_points_boost_user_attributes_item.rb +0 -65
  443. data/lib/trophy_api_client/types/admin_points_level.rb +0 -109
  444. data/lib/trophy_api_client/types/admin_points_level_badge.rb +0 -55
  445. data/lib/trophy_api_client/types/admin_points_system.rb +0 -118
  446. data/lib/trophy_api_client/types/admin_points_system_badge.rb +0 -55
  447. data/lib/trophy_api_client/types/admin_points_system_status.rb +0 -9
  448. data/lib/trophy_api_client/types/admin_points_trigger.rb +0 -175
  449. data/lib/trophy_api_client/types/admin_points_trigger_event_attributes_item.rb +0 -66
  450. data/lib/trophy_api_client/types/admin_points_trigger_status.rb +0 -9
  451. data/lib/trophy_api_client/types/admin_points_trigger_time_unit.rb +0 -9
  452. data/lib/trophy_api_client/types/admin_points_trigger_type.rb +0 -12
  453. data/lib/trophy_api_client/types/admin_points_trigger_user_attributes_item.rb +0 -65
  454. data/lib/trophy_api_client/types/admin_tenant.rb +0 -103
  455. data/lib/trophy_api_client/types/admin_tenant_status.rb +0 -9
  456. data/lib/trophy_api_client/types/base_streak_response.rb +0 -144
  457. data/lib/trophy_api_client/types/bulk_streak_response.rb +0 -7
  458. data/lib/trophy_api_client/types/bulk_streak_response_item.rb +0 -76
  459. data/lib/trophy_api_client/types/create_attribute_request_item.rb +0 -76
  460. data/lib/trophy_api_client/types/create_attribute_request_item_type.rb +0 -9
  461. data/lib/trophy_api_client/types/create_attributes_request.rb +0 -7
  462. data/lib/trophy_api_client/types/create_attributes_response.rb +0 -74
  463. data/lib/trophy_api_client/types/create_leaderboard_request_item.rb +0 -171
  464. data/lib/trophy_api_client/types/create_leaderboard_request_item_rank_by.rb +0 -10
  465. data/lib/trophy_api_client/types/create_leaderboard_request_item_run_unit.rb +0 -11
  466. data/lib/trophy_api_client/types/create_leaderboard_request_item_status.rb +0 -13
  467. data/lib/trophy_api_client/types/create_leaderboards_request.rb +0 -7
  468. data/lib/trophy_api_client/types/create_leaderboards_response.rb +0 -74
  469. data/lib/trophy_api_client/types/create_metric_request_item.rb +0 -87
  470. data/lib/trophy_api_client/types/create_metric_request_item_unit_type.rb +0 -9
  471. data/lib/trophy_api_client/types/create_metrics_request.rb +0 -7
  472. data/lib/trophy_api_client/types/create_metrics_response.rb +0 -74
  473. data/lib/trophy_api_client/types/create_points_boost_request_item.rb +0 -125
  474. data/lib/trophy_api_client/types/create_points_boost_request_item_rounding.rb +0 -10
  475. data/lib/trophy_api_client/types/create_points_boost_request_item_user_attributes_item.rb +0 -67
  476. data/lib/trophy_api_client/types/create_points_boosts_request.rb +0 -7
  477. data/lib/trophy_api_client/types/create_points_boosts_response.rb +0 -75
  478. data/lib/trophy_api_client/types/create_points_level_request_item.rb +0 -103
  479. data/lib/trophy_api_client/types/create_points_level_request_item_badge.rb +0 -56
  480. data/lib/trophy_api_client/types/create_points_levels_request.rb +0 -7
  481. data/lib/trophy_api_client/types/create_points_levels_response.rb +0 -74
  482. data/lib/trophy_api_client/types/create_points_system_request_item.rb +0 -140
  483. data/lib/trophy_api_client/types/create_points_system_request_item_badge.rb +0 -55
  484. data/lib/trophy_api_client/types/create_points_systems_request.rb +0 -7
  485. data/lib/trophy_api_client/types/create_points_systems_response.rb +0 -74
  486. data/lib/trophy_api_client/types/create_points_trigger_request_item.rb +0 -167
  487. data/lib/trophy_api_client/types/create_points_trigger_request_item_event_attributes_item.rb +0 -67
  488. data/lib/trophy_api_client/types/create_points_trigger_request_item_status.rb +0 -9
  489. data/lib/trophy_api_client/types/create_points_trigger_request_item_time_unit.rb +0 -9
  490. data/lib/trophy_api_client/types/create_points_trigger_request_item_type.rb +0 -12
  491. data/lib/trophy_api_client/types/create_points_trigger_request_item_user_attributes_item.rb +0 -67
  492. data/lib/trophy_api_client/types/create_points_triggers_request.rb +0 -7
  493. data/lib/trophy_api_client/types/create_points_triggers_response.rb +0 -74
  494. data/lib/trophy_api_client/types/create_streak_freezes_response.rb +0 -60
  495. data/lib/trophy_api_client/types/create_tenant_request_item.rb +0 -66
  496. data/lib/trophy_api_client/types/create_tenants_request.rb +0 -7
  497. data/lib/trophy_api_client/types/create_tenants_response.rb +0 -74
  498. data/lib/trophy_api_client/types/created_admin_points_system.rb +0 -163
  499. data/lib/trophy_api_client/types/created_metric.rb +0 -88
  500. data/lib/trophy_api_client/types/created_metric_unit_type.rb +0 -9
  501. data/lib/trophy_api_client/types/delete_attributes_response.rb +0 -75
  502. data/lib/trophy_api_client/types/delete_leaderboards_response.rb +0 -75
  503. data/lib/trophy_api_client/types/delete_metrics_response.rb +0 -75
  504. data/lib/trophy_api_client/types/delete_points_boosts_response.rb +0 -74
  505. data/lib/trophy_api_client/types/delete_points_levels_response.rb +0 -74
  506. data/lib/trophy_api_client/types/delete_points_systems_response.rb +0 -74
  507. data/lib/trophy_api_client/types/delete_points_triggers_response.rb +0 -75
  508. data/lib/trophy_api_client/types/delete_tenants_response.rb +0 -74
  509. data/lib/trophy_api_client/types/deleted_resource.rb +0 -56
  510. data/lib/trophy_api_client/types/error_body.rb +0 -55
  511. data/lib/trophy_api_client/types/event_response.rb +0 -147
  512. data/lib/trophy_api_client/types/get_user_points_response.rb +0 -139
  513. data/lib/trophy_api_client/types/leaderboard_event.rb +0 -110
  514. data/lib/trophy_api_client/types/leaderboard_ranking.rb +0 -82
  515. data/lib/trophy_api_client/types/leaderboard_response.rb +0 -192
  516. data/lib/trophy_api_client/types/leaderboard_response_rank_by.rb +0 -10
  517. data/lib/trophy_api_client/types/leaderboard_response_run_unit.rb +0 -11
  518. data/lib/trophy_api_client/types/leaderboard_response_with_rankings.rb +0 -212
  519. data/lib/trophy_api_client/types/leaderboard_response_with_rankings_status.rb +0 -10
  520. data/lib/trophy_api_client/types/list_attributes_response.rb +0 -7
  521. data/lib/trophy_api_client/types/list_leaderboards_response.rb +0 -7
  522. data/lib/trophy_api_client/types/list_metrics_response.rb +0 -7
  523. data/lib/trophy_api_client/types/list_points_boosts_response.rb +0 -7
  524. data/lib/trophy_api_client/types/list_points_levels_response.rb +0 -7
  525. data/lib/trophy_api_client/types/list_points_systems_response.rb +0 -7
  526. data/lib/trophy_api_client/types/list_points_triggers_response.rb +0 -7
  527. data/lib/trophy_api_client/types/list_tenants_response.rb +0 -7
  528. data/lib/trophy_api_client/types/metric_event_leaderboard_response.rb +0 -245
  529. data/lib/trophy_api_client/types/metric_event_leaderboard_response_breakdown_attribute_values_item.rb +0 -67
  530. data/lib/trophy_api_client/types/metric_event_points_response.rb +0 -148
  531. data/lib/trophy_api_client/types/metric_event_streak_response.rb +0 -153
  532. data/lib/trophy_api_client/types/metric_response.rb +0 -90
  533. data/lib/trophy_api_client/types/notification_channel.rb +0 -9
  534. data/lib/trophy_api_client/types/notification_preferences.rb +0 -89
  535. data/lib/trophy_api_client/types/patch_points_boosts_request.rb +0 -7
  536. data/lib/trophy_api_client/types/patch_points_boosts_request_item.rb +0 -118
  537. data/lib/trophy_api_client/types/patch_points_boosts_request_item_rounding.rb +0 -10
  538. data/lib/trophy_api_client/types/patch_points_boosts_request_item_user_attributes_item.rb +0 -67
  539. data/lib/trophy_api_client/types/patch_points_boosts_response.rb +0 -74
  540. data/lib/trophy_api_client/types/patch_points_levels_request.rb +0 -7
  541. data/lib/trophy_api_client/types/patch_points_levels_request_item.rb +0 -100
  542. data/lib/trophy_api_client/types/patch_points_levels_request_item_badge.rb +0 -55
  543. data/lib/trophy_api_client/types/patch_points_levels_response.rb +0 -74
  544. data/lib/trophy_api_client/types/patch_points_triggers_request.rb +0 -7
  545. data/lib/trophy_api_client/types/patch_points_triggers_request_item.rb +0 -174
  546. data/lib/trophy_api_client/types/patch_points_triggers_request_item_event_attributes_item.rb +0 -67
  547. data/lib/trophy_api_client/types/patch_points_triggers_request_item_status.rb +0 -9
  548. data/lib/trophy_api_client/types/patch_points_triggers_request_item_time_unit.rb +0 -9
  549. data/lib/trophy_api_client/types/patch_points_triggers_request_item_type.rb +0 -13
  550. data/lib/trophy_api_client/types/patch_points_triggers_request_item_user_attributes_item.rb +0 -67
  551. data/lib/trophy_api_client/types/patch_points_triggers_response.rb +0 -74
  552. data/lib/trophy_api_client/types/points_award.rb +0 -113
  553. data/lib/trophy_api_client/types/points_boost.rb +0 -112
  554. data/lib/trophy_api_client/types/points_boost_rounding.rb +0 -10
  555. data/lib/trophy_api_client/types/points_boost_status.rb +0 -10
  556. data/lib/trophy_api_client/types/points_boost_webhook_payload.rb +0 -149
  557. data/lib/trophy_api_client/types/points_boost_webhook_payload_rounding.rb +0 -10
  558. data/lib/trophy_api_client/types/points_boost_webhook_payload_status.rb +0 -9
  559. data/lib/trophy_api_client/types/points_level.rb +0 -103
  560. data/lib/trophy_api_client/types/points_level_summary_response.rb +0 -7
  561. data/lib/trophy_api_client/types/points_level_summary_response_item.rb +0 -71
  562. data/lib/trophy_api_client/types/points_range.rb +0 -72
  563. data/lib/trophy_api_client/types/points_response.rb +0 -103
  564. data/lib/trophy_api_client/types/points_summary_response.rb +0 -7
  565. data/lib/trophy_api_client/types/points_system_response.rb +0 -107
  566. data/lib/trophy_api_client/types/points_trigger.rb +0 -227
  567. data/lib/trophy_api_client/types/points_trigger_event_attribute.rb +0 -67
  568. data/lib/trophy_api_client/types/points_trigger_event_attributes_item.rb +0 -65
  569. data/lib/trophy_api_client/types/points_trigger_status.rb +0 -10
  570. data/lib/trophy_api_client/types/points_trigger_time_unit.rb +0 -9
  571. data/lib/trophy_api_client/types/points_trigger_type.rb +0 -12
  572. data/lib/trophy_api_client/types/points_trigger_user_attributes_item.rb +0 -65
  573. data/lib/trophy_api_client/types/restore_streaks_response.rb +0 -70
  574. data/lib/trophy_api_client/types/streak_evaluation_mode_preference.rb +0 -11
  575. data/lib/trophy_api_client/types/streak_frequency.rb +0 -9
  576. data/lib/trophy_api_client/types/streak_metric_preference.rb +0 -66
  577. data/lib/trophy_api_client/types/streak_preferences.rb +0 -83
  578. data/lib/trophy_api_client/types/streak_response.rb +0 -170
  579. data/lib/trophy_api_client/types/streak_response_streak_history_item.rb +0 -89
  580. data/lib/trophy_api_client/types/update_attribute_request_item.rb +0 -69
  581. data/lib/trophy_api_client/types/update_attributes_request.rb +0 -7
  582. data/lib/trophy_api_client/types/update_attributes_response.rb +0 -75
  583. data/lib/trophy_api_client/types/update_leaderboard_request_item.rb +0 -179
  584. data/lib/trophy_api_client/types/update_leaderboard_request_item_rank_by.rb +0 -11
  585. data/lib/trophy_api_client/types/update_leaderboard_request_item_run_unit.rb +0 -9
  586. data/lib/trophy_api_client/types/update_leaderboard_request_item_status.rb +0 -12
  587. data/lib/trophy_api_client/types/update_leaderboards_request.rb +0 -7
  588. data/lib/trophy_api_client/types/update_leaderboards_response.rb +0 -75
  589. data/lib/trophy_api_client/types/update_metric_request_item.rb +0 -86
  590. data/lib/trophy_api_client/types/update_metric_request_item_unit_type.rb +0 -9
  591. data/lib/trophy_api_client/types/update_metrics_request.rb +0 -7
  592. data/lib/trophy_api_client/types/update_metrics_response.rb +0 -75
  593. data/lib/trophy_api_client/types/update_points_system_request_item.rb +0 -102
  594. data/lib/trophy_api_client/types/update_points_system_request_item_badge.rb +0 -55
  595. data/lib/trophy_api_client/types/update_points_systems_request.rb +0 -7
  596. data/lib/trophy_api_client/types/update_points_systems_response.rb +0 -74
  597. data/lib/trophy_api_client/types/update_tenant_request_item.rb +0 -75
  598. data/lib/trophy_api_client/types/update_tenants_request.rb +0 -7
  599. data/lib/trophy_api_client/types/update_tenants_response.rb +0 -74
  600. data/lib/trophy_api_client/types/updated_user.rb +0 -108
  601. data/lib/trophy_api_client/types/upserted_user.rb +0 -116
  602. data/lib/trophy_api_client/types/user.rb +0 -141
  603. data/lib/trophy_api_client/types/user_achievement_response.rb +0 -209
  604. data/lib/trophy_api_client/types/user_achievement_with_stats_response.rb +0 -225
  605. data/lib/trophy_api_client/types/user_leaderboard_response.rb +0 -212
  606. data/lib/trophy_api_client/types/user_leaderboard_response_with_history.rb +0 -224
  607. data/lib/trophy_api_client/types/user_preferences_response.rb +0 -80
  608. data/lib/trophy_api_client/types/webhook_user_leaderboard_response.rb +0 -228
  609. data/lib/trophy_api_client/types/webhooks_achievement_completed_payload.rb +0 -84
  610. data/lib/trophy_api_client/types/webhooks_leaderboard_changed_payload.rb +0 -71
  611. data/lib/trophy_api_client/types/webhooks_leaderboard_finished_payload.rb +0 -71
  612. data/lib/trophy_api_client/types/webhooks_leaderboard_rank_changed_payload.rb +0 -85
  613. data/lib/trophy_api_client/types/webhooks_leaderboard_started_payload.rb +0 -71
  614. data/lib/trophy_api_client/types/webhooks_points_boost_finished_payload.rb +0 -79
  615. data/lib/trophy_api_client/types/webhooks_points_boost_started_payload.rb +0 -79
  616. data/lib/trophy_api_client/types/webhooks_points_changed_payload.rb +0 -84
  617. data/lib/trophy_api_client/types/webhooks_points_level_changed_payload.rb +0 -117
  618. data/lib/trophy_api_client/types/webhooks_points_level_changed_payload_points.rb +0 -114
  619. data/lib/trophy_api_client/types/webhooks_streak_extended_payload.rb +0 -84
  620. data/lib/trophy_api_client/types/webhooks_streak_freeze_consumed_payload.rb +0 -85
  621. data/lib/trophy_api_client/types/webhooks_streak_freeze_earned_payload.rb +0 -85
  622. data/lib/trophy_api_client/types/webhooks_streak_lost_payload.rb +0 -78
  623. data/lib/trophy_api_client/types/webhooks_streak_started_payload.rb +0 -84
  624. data/lib/trophy_api_client/types/wrapped_activity.rb +0 -134
  625. data/lib/trophy_api_client/types/wrapped_activity_period.rb +0 -95
  626. data/lib/trophy_api_client/types/wrapped_entire_year.rb +0 -114
  627. data/lib/trophy_api_client/types/wrapped_metric.rb +0 -119
  628. data/lib/trophy_api_client/types/wrapped_metric_by_attribute_value_value.rb +0 -103
  629. data/lib/trophy_api_client/types/wrapped_most_active_day.rb +0 -108
  630. data/lib/trophy_api_client/types/wrapped_most_active_month.rb +0 -108
  631. data/lib/trophy_api_client/types/wrapped_most_active_week.rb +0 -116
  632. data/lib/trophy_api_client/types/wrapped_points.rb +0 -106
  633. data/lib/trophy_api_client/types/wrapped_response.rb +0 -79
  634. data/lib/trophy_api_client/types/wrapped_streak.rb +0 -96
  635. data/lib/trophy_api_client/users/client.rb +0 -1356
  636. data/lib/trophy_api_client/users/types/users_metric_event_summary_response_item.rb +0 -76
  637. data/lib/trophy_api_client/users/types/users_points_event_summary_response_item.rb +0 -76
  638. data/lib/trophy_api_client/version.rb +0 -3
  639. data/lib/types_export.rb +0 -221
@@ -0,0 +1,612 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Users
5
+ class Client
6
+ # @param client [Trophy::Internal::Http::RawClient]
7
+ # @param base_url [String, nil]
8
+ # @param environment [Hash[Symbol, String], nil]
9
+ #
10
+ # @return [void]
11
+ def initialize(client:, base_url: nil, environment: nil)
12
+ @client = client
13
+ @base_url = base_url
14
+ @environment = environment
15
+ end
16
+
17
+ # Create a new user.
18
+ #
19
+ # @param request_options [Hash]
20
+ # @param params [Trophy::Types::UpsertedUser]
21
+ # @option request_options [String] :base_url
22
+ # @option request_options [Hash{String => Object}] :additional_headers
23
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
24
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
25
+ # @option request_options [Integer] :timeout_in_seconds
26
+ #
27
+ # @return [Trophy::Types::User]
28
+ def create(request_options: {}, **params)
29
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
30
+ request = Trophy::Internal::JSON::Request.new(
31
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
32
+ method: "POST",
33
+ path: "users",
34
+ body: Trophy::Types::UpsertedUser.new(params).to_h,
35
+ request_options: request_options
36
+ )
37
+ begin
38
+ response = @client.send(request)
39
+ rescue Net::HTTPRequestTimeout
40
+ raise Trophy::Errors::TimeoutError
41
+ end
42
+ code = response.code.to_i
43
+ if code.between?(200, 299)
44
+ Trophy::Types::User.load(response.body)
45
+ else
46
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
47
+ raise error_class.new(response.body, code: code)
48
+ end
49
+ end
50
+
51
+ # Get a single user.
52
+ #
53
+ # @param request_options [Hash]
54
+ # @param params [Hash]
55
+ # @option request_options [String] :base_url
56
+ # @option request_options [Hash{String => Object}] :additional_headers
57
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
58
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
59
+ # @option request_options [Integer] :timeout_in_seconds
60
+ # @option params [String] :id
61
+ #
62
+ # @return [Trophy::Types::User]
63
+ def get(request_options: {}, **params)
64
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
65
+ request = Trophy::Internal::JSON::Request.new(
66
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
67
+ method: "GET",
68
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}",
69
+ request_options: request_options
70
+ )
71
+ begin
72
+ response = @client.send(request)
73
+ rescue Net::HTTPRequestTimeout
74
+ raise Trophy::Errors::TimeoutError
75
+ end
76
+ code = response.code.to_i
77
+ if code.between?(200, 299)
78
+ Trophy::Types::User.load(response.body)
79
+ else
80
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
81
+ raise error_class.new(response.body, code: code)
82
+ end
83
+ end
84
+
85
+ # Identify a user.
86
+ #
87
+ # @param request_options [Hash]
88
+ # @param params [Trophy::Types::UpdatedUser]
89
+ # @option request_options [String] :base_url
90
+ # @option request_options [Hash{String => Object}] :additional_headers
91
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
92
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
93
+ # @option request_options [Integer] :timeout_in_seconds
94
+ # @option params [String] :id
95
+ #
96
+ # @return [Trophy::Types::User]
97
+ def identify(request_options: {}, **params)
98
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
99
+ request = Trophy::Internal::JSON::Request.new(
100
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
101
+ method: "PUT",
102
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}",
103
+ body: Trophy::Types::UpdatedUser.new(params).to_h,
104
+ request_options: request_options
105
+ )
106
+ begin
107
+ response = @client.send(request)
108
+ rescue Net::HTTPRequestTimeout
109
+ raise Trophy::Errors::TimeoutError
110
+ end
111
+ code = response.code.to_i
112
+ if code.between?(200, 299)
113
+ Trophy::Types::User.load(response.body)
114
+ else
115
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
116
+ raise error_class.new(response.body, code: code)
117
+ end
118
+ end
119
+
120
+ # Update a user.
121
+ #
122
+ # @param request_options [Hash]
123
+ # @param params [Trophy::Types::UpdatedUser]
124
+ # @option request_options [String] :base_url
125
+ # @option request_options [Hash{String => Object}] :additional_headers
126
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
127
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
128
+ # @option request_options [Integer] :timeout_in_seconds
129
+ # @option params [String] :id
130
+ #
131
+ # @return [Trophy::Types::User]
132
+ def update(request_options: {}, **params)
133
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
134
+ request = Trophy::Internal::JSON::Request.new(
135
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
136
+ method: "PATCH",
137
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}",
138
+ body: Trophy::Types::UpdatedUser.new(params).to_h,
139
+ request_options: request_options
140
+ )
141
+ begin
142
+ response = @client.send(request)
143
+ rescue Net::HTTPRequestTimeout
144
+ raise Trophy::Errors::TimeoutError
145
+ end
146
+ code = response.code.to_i
147
+ if code.between?(200, 299)
148
+ Trophy::Types::User.load(response.body)
149
+ else
150
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
151
+ raise error_class.new(response.body, code: code)
152
+ end
153
+ end
154
+
155
+ # Get a user's notification preferences.
156
+ #
157
+ # @param request_options [Hash]
158
+ # @param params [Hash]
159
+ # @option request_options [String] :base_url
160
+ # @option request_options [Hash{String => Object}] :additional_headers
161
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
162
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
163
+ # @option request_options [Integer] :timeout_in_seconds
164
+ # @option params [String] :id
165
+ #
166
+ # @return [Trophy::Types::UserPreferencesResponse]
167
+ def get_preferences(request_options: {}, **params)
168
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
169
+ request = Trophy::Internal::JSON::Request.new(
170
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
171
+ method: "GET",
172
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/preferences",
173
+ request_options: request_options
174
+ )
175
+ begin
176
+ response = @client.send(request)
177
+ rescue Net::HTTPRequestTimeout
178
+ raise Trophy::Errors::TimeoutError
179
+ end
180
+ code = response.code.to_i
181
+ if code.between?(200, 299)
182
+ Trophy::Types::UserPreferencesResponse.load(response.body)
183
+ else
184
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
185
+ raise error_class.new(response.body, code: code)
186
+ end
187
+ end
188
+
189
+ # Update a user's notification and streak preferences. Streak preferences other than `streak.enabled` require
190
+ # streak customization to be enabled in your Trophy dashboard settings.
191
+ #
192
+ # @param request_options [Hash]
193
+ # @param params [Trophy::Users::Types::UpdateUserPreferencesRequest]
194
+ # @option request_options [String] :base_url
195
+ # @option request_options [Hash{String => Object}] :additional_headers
196
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
197
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
198
+ # @option request_options [Integer] :timeout_in_seconds
199
+ # @option params [String] :id
200
+ #
201
+ # @return [Trophy::Types::UserPreferencesResponse]
202
+ def update_preferences(request_options: {}, **params)
203
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
204
+ request_data = Trophy::Users::Types::UpdateUserPreferencesRequest.new(params).to_h
205
+ non_body_param_names = %w[id]
206
+ body = request_data.except(*non_body_param_names)
207
+
208
+ request = Trophy::Internal::JSON::Request.new(
209
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
210
+ method: "PATCH",
211
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/preferences",
212
+ body: body,
213
+ request_options: request_options
214
+ )
215
+ begin
216
+ response = @client.send(request)
217
+ rescue Net::HTTPRequestTimeout
218
+ raise Trophy::Errors::TimeoutError
219
+ end
220
+ code = response.code.to_i
221
+ if code.between?(200, 299)
222
+ Trophy::Types::UserPreferencesResponse.load(response.body)
223
+ else
224
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
225
+ raise error_class.new(response.body, code: code)
226
+ end
227
+ end
228
+
229
+ # Get a single user's progress against all active metrics.
230
+ #
231
+ # @param request_options [Hash]
232
+ # @param params [Hash]
233
+ # @option request_options [String] :base_url
234
+ # @option request_options [Hash{String => Object}] :additional_headers
235
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
236
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
237
+ # @option request_options [Integer] :timeout_in_seconds
238
+ # @option params [String] :id
239
+ #
240
+ # @return [Array[Trophy::Types::MetricResponse]]
241
+ def all_metrics(request_options: {}, **params)
242
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
243
+ request = Trophy::Internal::JSON::Request.new(
244
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
245
+ method: "GET",
246
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/metrics",
247
+ request_options: request_options
248
+ )
249
+ begin
250
+ response = @client.send(request)
251
+ rescue Net::HTTPRequestTimeout
252
+ raise Trophy::Errors::TimeoutError
253
+ end
254
+ code = response.code.to_i
255
+ return if code.between?(200, 299)
256
+
257
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
258
+ raise error_class.new(response.body, code: code)
259
+ end
260
+
261
+ # Get a user's progress against a single active metric.
262
+ #
263
+ # @param request_options [Hash]
264
+ # @param params [Hash]
265
+ # @option request_options [String] :base_url
266
+ # @option request_options [Hash{String => Object}] :additional_headers
267
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
268
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
269
+ # @option request_options [Integer] :timeout_in_seconds
270
+ # @option params [String] :id
271
+ # @option params [String] :key
272
+ #
273
+ # @return [Trophy::Types::MetricResponse]
274
+ def single_metric(request_options: {}, **params)
275
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
276
+ request = Trophy::Internal::JSON::Request.new(
277
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
278
+ method: "GET",
279
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/metrics/#{URI.encode_uri_component(params[:key].to_s)}",
280
+ request_options: request_options
281
+ )
282
+ begin
283
+ response = @client.send(request)
284
+ rescue Net::HTTPRequestTimeout
285
+ raise Trophy::Errors::TimeoutError
286
+ end
287
+ code = response.code.to_i
288
+ if code.between?(200, 299)
289
+ Trophy::Types::MetricResponse.load(response.body)
290
+ else
291
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
292
+ raise error_class.new(response.body, code: code)
293
+ end
294
+ end
295
+
296
+ # Get a summary of metric events over time for a user.
297
+ #
298
+ # @param request_options [Hash]
299
+ # @param params [Hash]
300
+ # @option request_options [String] :base_url
301
+ # @option request_options [Hash{String => Object}] :additional_headers
302
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
303
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
304
+ # @option request_options [Integer] :timeout_in_seconds
305
+ # @option params [String] :id
306
+ # @option params [String] :key
307
+ # @option params [Trophy::Users::Types::UsersMetricEventSummaryRequestAggregation] :aggregation
308
+ # @option params [String] :start_date
309
+ # @option params [String] :end_date
310
+ #
311
+ # @return [Array[Trophy::Users::Types::UsersMetricEventSummaryResponseItem]]
312
+ def metric_event_summary(request_options: {}, **params)
313
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
314
+ query_params = {}
315
+ query_params["aggregation"] = params[:aggregation] if params.key?(:aggregation)
316
+ query_params["startDate"] = params[:start_date] if params.key?(:start_date)
317
+ query_params["endDate"] = params[:end_date] if params.key?(:end_date)
318
+
319
+ request = Trophy::Internal::JSON::Request.new(
320
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
321
+ method: "GET",
322
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/metrics/#{URI.encode_uri_component(params[:key].to_s)}/event-summary",
323
+ query: query_params,
324
+ request_options: request_options
325
+ )
326
+ begin
327
+ response = @client.send(request)
328
+ rescue Net::HTTPRequestTimeout
329
+ raise Trophy::Errors::TimeoutError
330
+ end
331
+ code = response.code.to_i
332
+ return if code.between?(200, 299)
333
+
334
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
335
+ raise error_class.new(response.body, code: code)
336
+ end
337
+
338
+ # Get a user's achievements.
339
+ #
340
+ # @param request_options [Hash]
341
+ # @param params [Hash]
342
+ # @option request_options [String] :base_url
343
+ # @option request_options [Hash{String => Object}] :additional_headers
344
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
345
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
346
+ # @option request_options [Integer] :timeout_in_seconds
347
+ # @option params [String] :id
348
+ # @option params [String, nil] :include_incomplete
349
+ #
350
+ # @return [Array[Trophy::Types::UserAchievementWithStatsResponse]]
351
+ def achievements(request_options: {}, **params)
352
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
353
+ query_params = {}
354
+ query_params["includeIncomplete"] = params[:include_incomplete] if params.key?(:include_incomplete)
355
+
356
+ request = Trophy::Internal::JSON::Request.new(
357
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
358
+ method: "GET",
359
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/achievements",
360
+ query: query_params,
361
+ request_options: request_options
362
+ )
363
+ begin
364
+ response = @client.send(request)
365
+ rescue Net::HTTPRequestTimeout
366
+ raise Trophy::Errors::TimeoutError
367
+ end
368
+ code = response.code.to_i
369
+ return if code.between?(200, 299)
370
+
371
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
372
+ raise error_class.new(response.body, code: code)
373
+ end
374
+
375
+ # Get a user's streak data.
376
+ #
377
+ # @param request_options [Hash]
378
+ # @param params [Hash]
379
+ # @option request_options [String] :base_url
380
+ # @option request_options [Hash{String => Object}] :additional_headers
381
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
382
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
383
+ # @option request_options [Integer] :timeout_in_seconds
384
+ # @option params [String] :id
385
+ # @option params [Integer, nil] :history_periods
386
+ #
387
+ # @return [Trophy::Types::StreakResponse]
388
+ def streak(request_options: {}, **params)
389
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
390
+ query_params = {}
391
+ query_params["historyPeriods"] = params[:history_periods] if params.key?(:history_periods)
392
+
393
+ request = Trophy::Internal::JSON::Request.new(
394
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
395
+ method: "GET",
396
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/streak",
397
+ query: query_params,
398
+ request_options: request_options
399
+ )
400
+ begin
401
+ response = @client.send(request)
402
+ rescue Net::HTTPRequestTimeout
403
+ raise Trophy::Errors::TimeoutError
404
+ end
405
+ code = response.code.to_i
406
+ if code.between?(200, 299)
407
+ Trophy::Types::StreakResponse.load(response.body)
408
+ else
409
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
410
+ raise error_class.new(response.body, code: code)
411
+ end
412
+ end
413
+
414
+ # Get a user's points for a specific points system.
415
+ #
416
+ # @param request_options [Hash]
417
+ # @param params [Hash]
418
+ # @option request_options [String] :base_url
419
+ # @option request_options [Hash{String => Object}] :additional_headers
420
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
421
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
422
+ # @option request_options [Integer] :timeout_in_seconds
423
+ # @option params [String] :id
424
+ # @option params [String] :key
425
+ # @option params [Integer, nil] :awards
426
+ #
427
+ # @return [Trophy::Types::GetUserPointsResponse]
428
+ def points(request_options: {}, **params)
429
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
430
+ query_params = {}
431
+ query_params["awards"] = params[:awards] if params.key?(:awards)
432
+
433
+ request = Trophy::Internal::JSON::Request.new(
434
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
435
+ method: "GET",
436
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/points/#{URI.encode_uri_component(params[:key].to_s)}",
437
+ query: query_params,
438
+ request_options: request_options
439
+ )
440
+ begin
441
+ response = @client.send(request)
442
+ rescue Net::HTTPRequestTimeout
443
+ raise Trophy::Errors::TimeoutError
444
+ end
445
+ code = response.code.to_i
446
+ if code.between?(200, 299)
447
+ Trophy::Types::GetUserPointsResponse.load(response.body)
448
+ else
449
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
450
+ raise error_class.new(response.body, code: code)
451
+ end
452
+ end
453
+
454
+ # Get active points boosts for a user in a specific points system. Returns both global boosts the user is eligible
455
+ # for and user-specific boosts.
456
+ #
457
+ # @param request_options [Hash]
458
+ # @param params [Hash]
459
+ # @option request_options [String] :base_url
460
+ # @option request_options [Hash{String => Object}] :additional_headers
461
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
462
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
463
+ # @option request_options [Integer] :timeout_in_seconds
464
+ # @option params [String] :id
465
+ # @option params [String] :key
466
+ #
467
+ # @return [Array[Trophy::Types::PointsBoost]]
468
+ def points_boosts(request_options: {}, **params)
469
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
470
+ request = Trophy::Internal::JSON::Request.new(
471
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
472
+ method: "GET",
473
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/points/#{URI.encode_uri_component(params[:key].to_s)}/boosts",
474
+ request_options: request_options
475
+ )
476
+ begin
477
+ response = @client.send(request)
478
+ rescue Net::HTTPRequestTimeout
479
+ raise Trophy::Errors::TimeoutError
480
+ end
481
+ code = response.code.to_i
482
+ return if code.between?(200, 299)
483
+
484
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
485
+ raise error_class.new(response.body, code: code)
486
+ end
487
+
488
+ # Get a summary of points awards over time for a user for a specific points system.
489
+ #
490
+ # @param request_options [Hash]
491
+ # @param params [Hash]
492
+ # @option request_options [String] :base_url
493
+ # @option request_options [Hash{String => Object}] :additional_headers
494
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
495
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
496
+ # @option request_options [Integer] :timeout_in_seconds
497
+ # @option params [String] :id
498
+ # @option params [String] :key
499
+ # @option params [Trophy::Users::Types::UsersPointsEventSummaryRequestAggregation] :aggregation
500
+ # @option params [String] :start_date
501
+ # @option params [String] :end_date
502
+ #
503
+ # @return [Array[Trophy::Users::Types::UsersPointsEventSummaryResponseItem]]
504
+ def points_event_summary(request_options: {}, **params)
505
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
506
+ query_params = {}
507
+ query_params["aggregation"] = params[:aggregation] if params.key?(:aggregation)
508
+ query_params["startDate"] = params[:start_date] if params.key?(:start_date)
509
+ query_params["endDate"] = params[:end_date] if params.key?(:end_date)
510
+
511
+ request = Trophy::Internal::JSON::Request.new(
512
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
513
+ method: "GET",
514
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/points/#{URI.encode_uri_component(params[:key].to_s)}/event-summary",
515
+ query: query_params,
516
+ request_options: request_options
517
+ )
518
+ begin
519
+ response = @client.send(request)
520
+ rescue Net::HTTPRequestTimeout
521
+ raise Trophy::Errors::TimeoutError
522
+ end
523
+ code = response.code.to_i
524
+ return if code.between?(200, 299)
525
+
526
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
527
+ raise error_class.new(response.body, code: code)
528
+ end
529
+
530
+ # Get a user's rank, value, and daily ranking history for a specific leaderboard.
531
+ #
532
+ # @param request_options [Hash]
533
+ # @param params [Hash]
534
+ # @option request_options [String] :base_url
535
+ # @option request_options [Hash{String => Object}] :additional_headers
536
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
537
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
538
+ # @option request_options [Integer] :timeout_in_seconds
539
+ # @option params [String] :id
540
+ # @option params [String] :key
541
+ # @option params [String, nil] :run
542
+ # @option params [Integer, nil] :num_events
543
+ #
544
+ # @return [Trophy::Types::UserLeaderboardResponseWithHistory]
545
+ def leaderboard(request_options: {}, **params)
546
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
547
+ query_params = {}
548
+ query_params["run"] = params[:run] if params.key?(:run)
549
+ query_params["numEvents"] = params[:num_events] if params.key?(:num_events)
550
+
551
+ request = Trophy::Internal::JSON::Request.new(
552
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
553
+ method: "GET",
554
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/leaderboards/#{URI.encode_uri_component(params[:key].to_s)}",
555
+ query: query_params,
556
+ request_options: request_options
557
+ )
558
+ begin
559
+ response = @client.send(request)
560
+ rescue Net::HTTPRequestTimeout
561
+ raise Trophy::Errors::TimeoutError
562
+ end
563
+ code = response.code.to_i
564
+ if code.between?(200, 299)
565
+ Trophy::Types::UserLeaderboardResponseWithHistory.load(response.body)
566
+ else
567
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
568
+ raise error_class.new(response.body, code: code)
569
+ end
570
+ end
571
+
572
+ # Get a user's year-in-review wrapped data.
573
+ #
574
+ # @param request_options [Hash]
575
+ # @param params [Hash]
576
+ # @option request_options [String] :base_url
577
+ # @option request_options [Hash{String => Object}] :additional_headers
578
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
579
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
580
+ # @option request_options [Integer] :timeout_in_seconds
581
+ # @option params [String] :id
582
+ # @option params [Integer, nil] :year
583
+ #
584
+ # @return [Trophy::Types::WrappedResponse]
585
+ def wrapped(request_options: {}, **params)
586
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
587
+ query_params = {}
588
+ query_params["year"] = params[:year] if params.key?(:year)
589
+
590
+ request = Trophy::Internal::JSON::Request.new(
591
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:api),
592
+ method: "GET",
593
+ path: "users/#{URI.encode_uri_component(params[:id].to_s)}/wrapped",
594
+ query: query_params,
595
+ request_options: request_options
596
+ )
597
+ begin
598
+ response = @client.send(request)
599
+ rescue Net::HTTPRequestTimeout
600
+ raise Trophy::Errors::TimeoutError
601
+ end
602
+ code = response.code.to_i
603
+ if code.between?(200, 299)
604
+ Trophy::Types::WrappedResponse.load(response.body)
605
+ else
606
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
607
+ raise error_class.new(response.body, code: code)
608
+ end
609
+ end
610
+ end
611
+ end
612
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Users
5
+ module Types
6
+ class UpdateUserPreferencesRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :notifications, -> { Trophy::Types::NotificationPreferences }, optional: true, nullable: false
10
+
11
+ field :streak, -> { Trophy::Types::StreakPreferences }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Users
5
+ module Types
6
+ class UsersAchievementsRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :include_incomplete, -> { String }, optional: true, nullable: false, api_name: "includeIncomplete"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Users
5
+ module Types
6
+ class UsersLeaderboardRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :key, -> { String }, optional: false, nullable: false
10
+
11
+ field :run, -> { String }, optional: true, nullable: false
12
+
13
+ field :num_events, -> { Integer }, optional: true, nullable: false, api_name: "numEvents"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Users
5
+ module Types
6
+ class UsersMetricEventSummaryRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :key, -> { String }, optional: false, nullable: false
10
+
11
+ field :aggregation, -> { Trophy::Users::Types::UsersMetricEventSummaryRequestAggregation }, optional: false, nullable: false
12
+
13
+ field :start_date, -> { String }, optional: false, nullable: false, api_name: "startDate"
14
+
15
+ field :end_date, -> { String }, optional: false, nullable: false, api_name: "endDate"
16
+ end
17
+ end
18
+ end
19
+ end