trophy_api_client 1.13.0 → 1.26.1

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 (635) 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 +47 -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 +40 -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_points_boost.rb +26 -0
  132. data/lib/trophy/types/admin_points_boost_rounding.rb +13 -0
  133. data/lib/{trophy_api_client/leaderboards/types/leaderboards_all_response_item_status.rb → trophy/types/admin_points_boost_status.rb} +5 -4
  134. data/lib/trophy/types/admin_points_boost_user_attributes_item.rb +11 -0
  135. data/lib/trophy/types/admin_points_level.rb +20 -0
  136. data/lib/trophy/types/admin_points_level_badge.rb +9 -0
  137. data/lib/trophy/types/admin_points_system.rb +22 -0
  138. data/lib/trophy/types/admin_points_system_badge.rb +9 -0
  139. data/lib/trophy/types/admin_points_system_status.rb +12 -0
  140. data/lib/trophy/types/admin_points_trigger.rb +34 -0
  141. data/lib/trophy/types/admin_points_trigger_event_attributes_item.rb +11 -0
  142. data/lib/trophy/types/admin_points_trigger_status.rb +12 -0
  143. data/lib/trophy/types/admin_points_trigger_time_unit.rb +12 -0
  144. data/lib/trophy/types/admin_points_trigger_type.rb +15 -0
  145. data/lib/trophy/types/admin_points_trigger_user_attributes_item.rb +11 -0
  146. data/lib/trophy/types/admin_settings.rb +14 -0
  147. data/lib/trophy/types/admin_settings_branding.rb +20 -0
  148. data/lib/trophy/types/admin_settings_branding_app_icon.rb +9 -0
  149. data/lib/trophy/types/admin_settings_branding_logo.rb +9 -0
  150. data/lib/trophy/types/admin_settings_experimentation.rb +12 -0
  151. data/lib/trophy/types/admin_streak_evaluation_mode.rb +12 -0
  152. data/lib/{trophy_api_client/users/types/users_points_event_summary_request_aggregation.rb → trophy/types/admin_streak_frequency.rb} +5 -3
  153. data/lib/trophy/types/admin_streak_pause.rb +18 -0
  154. data/lib/trophy/types/admin_streak_pause_status.rb +12 -0
  155. data/lib/trophy/types/admin_tenant.rb +20 -0
  156. data/lib/trophy/types/admin_tenant_status.rb +12 -0
  157. data/lib/trophy/types/base_streak_response.rb +27 -0
  158. data/lib/trophy/types/batch_events_response.rb +10 -0
  159. data/lib/trophy/types/batch_metric_event.rb +19 -0
  160. data/lib/trophy/types/batch_metric_event_user.rb +22 -0
  161. data/lib/trophy/types/bulk_streak_response.rb +23 -0
  162. data/lib/trophy/types/bulk_streak_response_item.rb +13 -0
  163. data/lib/trophy/types/create_achievement_request_item.rb +35 -0
  164. data/lib/trophy/types/create_achievement_request_item_badge.rb +10 -0
  165. data/lib/trophy/types/create_achievement_request_item_event_attributes_item.rb +11 -0
  166. data/lib/trophy/types/create_achievement_request_item_status.rb +13 -0
  167. data/lib/trophy/types/create_achievement_request_item_trigger.rb +15 -0
  168. data/lib/trophy/types/create_achievement_request_item_user_attributes_item.rb +11 -0
  169. data/lib/trophy/types/create_achievements_request.rb +23 -0
  170. data/lib/trophy/types/create_achievements_response.rb +12 -0
  171. data/lib/trophy/types/create_application_key_request_item.rb +10 -0
  172. data/lib/trophy/types/create_application_keys_request.rb +23 -0
  173. data/lib/trophy/types/create_application_keys_response.rb +12 -0
  174. data/lib/trophy/types/create_attribute_request_item.rb +14 -0
  175. data/lib/trophy/types/create_attribute_request_item_type.rb +12 -0
  176. data/lib/trophy/types/create_attributes_request.rb +23 -0
  177. data/lib/trophy/types/create_attributes_response.rb +12 -0
  178. data/lib/trophy/types/create_leaderboard_request_item.rb +38 -0
  179. data/lib/trophy/types/create_leaderboard_request_item_rank_by.rb +13 -0
  180. data/lib/trophy/types/create_leaderboard_request_item_run_unit.rb +13 -0
  181. data/lib/trophy/types/create_leaderboard_request_item_status.rb +14 -0
  182. data/lib/trophy/types/create_leaderboards_request.rb +23 -0
  183. data/lib/trophy/types/create_leaderboards_response.rb +12 -0
  184. data/lib/trophy/types/create_metric_request_item.rb +16 -0
  185. data/lib/trophy/types/create_metric_request_item_unit_type.rb +12 -0
  186. data/lib/trophy/types/create_metrics_request.rb +23 -0
  187. data/lib/trophy/types/create_metrics_response.rb +12 -0
  188. data/lib/trophy/types/create_points_boost_request_item.rb +23 -0
  189. data/lib/trophy/types/create_points_boost_request_item_rounding.rb +13 -0
  190. data/lib/trophy/types/create_points_boost_request_item_user_attributes_item.rb +11 -0
  191. data/lib/trophy/types/create_points_boosts_request.rb +23 -0
  192. data/lib/trophy/types/create_points_boosts_response.rb +12 -0
  193. data/lib/trophy/types/create_points_level_request_item.rb +18 -0
  194. data/lib/trophy/types/create_points_level_request_item_badge.rb +10 -0
  195. data/lib/trophy/types/create_points_levels_request.rb +23 -0
  196. data/lib/trophy/types/create_points_levels_response.rb +12 -0
  197. data/lib/trophy/types/create_points_system_request_item.rb +24 -0
  198. data/lib/trophy/types/create_points_system_request_item_badge.rb +9 -0
  199. data/lib/trophy/types/create_points_systems_request.rb +23 -0
  200. data/lib/trophy/types/create_points_systems_response.rb +12 -0
  201. data/lib/trophy/types/create_points_trigger_request_item.rb +32 -0
  202. data/lib/trophy/types/create_points_trigger_request_item_event_attributes_item.rb +11 -0
  203. data/lib/trophy/types/create_points_trigger_request_item_status.rb +12 -0
  204. data/lib/trophy/types/create_points_trigger_request_item_time_unit.rb +12 -0
  205. data/lib/trophy/types/create_points_trigger_request_item_type.rb +15 -0
  206. data/lib/trophy/types/create_points_trigger_request_item_user_attributes_item.rb +11 -0
  207. data/lib/trophy/types/create_points_triggers_request.rb +23 -0
  208. data/lib/trophy/types/create_points_triggers_response.rb +12 -0
  209. data/lib/trophy/types/create_streak_freezes_response.rb +10 -0
  210. data/lib/trophy/types/create_streak_pauses_response.rb +12 -0
  211. data/lib/trophy/types/create_tenant_request_item.rb +12 -0
  212. data/lib/trophy/types/create_tenants_request.rb +23 -0
  213. data/lib/trophy/types/create_tenants_response.rb +12 -0
  214. data/lib/trophy/types/created_admin_points_system.rb +29 -0
  215. data/lib/trophy/types/created_application_key.rb +16 -0
  216. data/lib/trophy/types/created_metric.rb +18 -0
  217. data/lib/trophy/types/created_metric_unit_type.rb +12 -0
  218. data/lib/trophy/types/delete_achievements_response.rb +13 -0
  219. data/lib/trophy/types/delete_application_keys_response.rb +12 -0
  220. data/lib/trophy/types/delete_attributes_response.rb +13 -0
  221. data/lib/trophy/types/delete_leaderboards_response.rb +12 -0
  222. data/lib/trophy/types/delete_metrics_response.rb +13 -0
  223. data/lib/trophy/types/delete_points_boosts_response.rb +12 -0
  224. data/lib/trophy/types/delete_points_levels_response.rb +12 -0
  225. data/lib/trophy/types/delete_points_systems_response.rb +12 -0
  226. data/lib/trophy/types/delete_points_triggers_response.rb +12 -0
  227. data/lib/trophy/types/delete_streak_pauses_response.rb +12 -0
  228. data/lib/trophy/types/delete_tenants_response.rb +12 -0
  229. data/lib/trophy/types/deleted_resource.rb +10 -0
  230. data/lib/trophy/types/error_body.rb +9 -0
  231. data/lib/trophy/types/event_response.rb +25 -0
  232. data/lib/trophy/types/get_user_points_response.rb +25 -0
  233. data/lib/trophy/types/leaderboard_event.rb +20 -0
  234. data/lib/trophy/types/leaderboard_ranking.rb +16 -0
  235. data/lib/trophy/types/leaderboard_response.rb +44 -0
  236. data/lib/trophy/types/leaderboard_response_rank_by.rb +13 -0
  237. data/lib/trophy/types/leaderboard_response_run_unit.rb +13 -0
  238. data/lib/trophy/types/leaderboard_response_with_rankings.rb +47 -0
  239. data/lib/trophy/types/leaderboard_response_with_rankings_status.rb +13 -0
  240. data/lib/trophy/types/list_achievements_response.rb +23 -0
  241. data/lib/trophy/types/list_attributes_response.rb +23 -0
  242. data/lib/trophy/types/list_environments_response.rb +23 -0
  243. data/lib/trophy/types/list_leaderboards_response.rb +23 -0
  244. data/lib/trophy/types/list_metrics_response.rb +23 -0
  245. data/lib/trophy/types/list_points_boosts_response.rb +23 -0
  246. data/lib/trophy/types/list_points_levels_response.rb +23 -0
  247. data/lib/trophy/types/list_points_systems_response.rb +23 -0
  248. data/lib/trophy/types/list_points_triggers_response.rb +23 -0
  249. data/lib/trophy/types/list_tenants_response.rb +23 -0
  250. data/lib/trophy/types/metric_event_leaderboard_response.rb +53 -0
  251. data/lib/trophy/types/metric_event_leaderboard_response_breakdown_attribute_values_item.rb +11 -0
  252. data/lib/trophy/types/metric_event_points_response.rb +28 -0
  253. data/lib/trophy/types/metric_event_streak_response.rb +30 -0
  254. data/lib/trophy/types/metric_response.rb +17 -0
  255. data/lib/trophy/types/notification_channel.rb +12 -0
  256. data/lib/trophy/types/notification_preferences.rb +16 -0
  257. data/lib/trophy/types/patch_points_boosts_request.rb +23 -0
  258. data/lib/trophy/types/patch_points_boosts_request_item.rb +21 -0
  259. data/lib/trophy/types/patch_points_boosts_request_item_rounding.rb +13 -0
  260. data/lib/trophy/types/patch_points_boosts_request_item_user_attributes_item.rb +11 -0
  261. data/lib/trophy/types/patch_points_boosts_response.rb +12 -0
  262. data/lib/trophy/types/patch_points_levels_request.rb +23 -0
  263. data/lib/trophy/types/patch_points_levels_request_item.rb +17 -0
  264. data/lib/trophy/types/patch_points_levels_request_item_badge.rb +9 -0
  265. data/lib/trophy/types/patch_points_levels_response.rb +12 -0
  266. data/lib/trophy/types/patch_points_triggers_request.rb +23 -0
  267. data/lib/trophy/types/patch_points_triggers_request_item.rb +33 -0
  268. data/lib/trophy/types/patch_points_triggers_request_item_event_attributes_item.rb +11 -0
  269. data/lib/trophy/types/patch_points_triggers_request_item_status.rb +12 -0
  270. data/lib/trophy/types/patch_points_triggers_request_item_time_unit.rb +12 -0
  271. data/lib/trophy/types/patch_points_triggers_request_item_type.rb +15 -0
  272. data/lib/trophy/types/patch_points_triggers_request_item_user_attributes_item.rb +11 -0
  273. data/lib/trophy/types/patch_points_triggers_response.rb +12 -0
  274. data/lib/trophy/types/points_award.rb +19 -0
  275. data/lib/trophy/types/points_boost.rb +21 -0
  276. data/lib/trophy/types/points_boost_rounding.rb +13 -0
  277. data/lib/trophy/types/points_boost_status.rb +13 -0
  278. data/lib/trophy/types/points_boost_webhook_payload.rb +30 -0
  279. data/lib/trophy/types/points_boost_webhook_payload_rounding.rb +13 -0
  280. data/lib/trophy/types/points_boost_webhook_payload_status.rb +12 -0
  281. data/lib/trophy/types/points_level.rb +20 -0
  282. data/lib/trophy/types/points_level_summary_response.rb +23 -0
  283. data/lib/trophy/types/points_level_summary_response_item.rb +11 -0
  284. data/lib/trophy/types/points_range.rb +13 -0
  285. data/lib/trophy/types/points_response.rb +20 -0
  286. data/lib/trophy/types/points_summary_response.rb +23 -0
  287. data/lib/trophy/types/points_system_response.rb +19 -0
  288. data/lib/trophy/types/points_trigger.rb +41 -0
  289. data/lib/trophy/types/points_trigger_event_attribute.rb +13 -0
  290. data/lib/trophy/types/points_trigger_event_attributes_item.rb +11 -0
  291. data/lib/trophy/types/points_trigger_status.rb +13 -0
  292. data/lib/trophy/types/points_trigger_time_unit.rb +12 -0
  293. data/lib/trophy/types/points_trigger_type.rb +15 -0
  294. data/lib/trophy/types/points_trigger_user_attributes_item.rb +11 -0
  295. data/lib/trophy/types/reset_streaks_response.rb +12 -0
  296. data/lib/trophy/types/restore_streaks_response.rb +12 -0
  297. data/lib/trophy/types/streak_evaluation_mode_preference.rb +12 -0
  298. data/lib/{trophy_api_client/users/types/users_metric_event_summary_request_aggregation.rb → trophy/types/streak_frequency.rb} +5 -3
  299. data/lib/trophy/types/streak_metric_preference.rb +12 -0
  300. data/lib/trophy/types/streak_preferences.rb +17 -0
  301. data/lib/trophy/types/streak_response.rb +34 -0
  302. data/lib/trophy/types/streak_response_pauses_item.rb +14 -0
  303. data/lib/trophy/types/streak_response_streak_history_item.rb +20 -0
  304. data/lib/trophy/types/streak_settings.rb +20 -0
  305. data/lib/trophy/types/streak_settings_freezes.rb +16 -0
  306. data/lib/trophy/types/streak_settings_metric.rb +12 -0
  307. data/lib/trophy/types/update_achievement_request_item.rb +37 -0
  308. data/lib/trophy/types/update_achievement_request_item_badge.rb +9 -0
  309. data/lib/trophy/types/update_achievement_request_item_event_attributes_item.rb +11 -0
  310. data/lib/trophy/types/update_achievement_request_item_status.rb +13 -0
  311. data/lib/trophy/types/update_achievement_request_item_trigger.rb +15 -0
  312. data/lib/trophy/types/update_achievement_request_item_user_attributes_item.rb +11 -0
  313. data/lib/trophy/types/update_achievements_request.rb +23 -0
  314. data/lib/trophy/types/update_achievements_response.rb +12 -0
  315. data/lib/trophy/types/update_admin_settings_branding.rb +20 -0
  316. data/lib/trophy/types/update_admin_settings_branding_app_icon.rb +9 -0
  317. data/lib/trophy/types/update_admin_settings_branding_logo.rb +9 -0
  318. data/lib/trophy/types/update_admin_settings_experimentation.rb +12 -0
  319. data/lib/trophy/types/update_attribute_request_item.rb +13 -0
  320. data/lib/trophy/types/update_attributes_request.rb +23 -0
  321. data/lib/trophy/types/update_attributes_response.rb +12 -0
  322. data/lib/trophy/types/update_leaderboard_request_item.rb +41 -0
  323. data/lib/trophy/types/update_leaderboard_request_item_rank_by.rb +13 -0
  324. data/lib/trophy/types/update_leaderboard_request_item_run_unit.rb +13 -0
  325. data/lib/trophy/types/update_leaderboard_request_item_status.rb +14 -0
  326. data/lib/trophy/types/update_leaderboards_request.rb +23 -0
  327. data/lib/trophy/types/update_leaderboards_response.rb +12 -0
  328. data/lib/trophy/types/update_metric_request_item.rb +17 -0
  329. data/lib/trophy/types/update_metric_request_item_unit_type.rb +12 -0
  330. data/lib/trophy/types/update_metrics_request.rb +23 -0
  331. data/lib/trophy/types/update_metrics_response.rb +12 -0
  332. data/lib/trophy/types/update_points_system_request_item.rb +18 -0
  333. data/lib/trophy/types/update_points_system_request_item_badge.rb +9 -0
  334. data/lib/trophy/types/update_points_systems_request.rb +23 -0
  335. data/lib/trophy/types/update_points_systems_response.rb +12 -0
  336. data/lib/trophy/types/update_streak_settings_freezes.rb +17 -0
  337. data/lib/trophy/types/update_tenant_request_item.rb +14 -0
  338. data/lib/trophy/types/update_tenants_request.rb +23 -0
  339. data/lib/trophy/types/update_tenants_response.rb +12 -0
  340. data/lib/trophy/types/updated_user.rb +22 -0
  341. data/lib/trophy/types/upserted_user.rb +24 -0
  342. data/lib/trophy/types/user.rb +30 -0
  343. data/lib/trophy/types/user_achievement_response.rb +39 -0
  344. data/lib/trophy/types/user_achievement_with_stats_response.rb +43 -0
  345. data/lib/trophy/types/user_leaderboard_response.rb +48 -0
  346. data/lib/trophy/types/user_leaderboard_response_with_history.rb +50 -0
  347. data/lib/trophy/types/user_preferences_response.rb +12 -0
  348. data/lib/trophy/types/webhook_user_leaderboard_response.rb +52 -0
  349. data/lib/trophy/types/webhooks_achievement_completed_payload.rb +13 -0
  350. data/lib/trophy/types/webhooks_emails_achievement_due_payload.rb +15 -0
  351. data/lib/trophy/types/webhooks_emails_reactivation_due_payload.rb +15 -0
  352. data/lib/trophy/types/webhooks_emails_reactivation_due_payload_reactivation.rb +12 -0
  353. data/lib/trophy/types/webhooks_emails_recap_due_payload.rb +15 -0
  354. data/lib/trophy/types/webhooks_emails_recap_due_payload_recap.rb +12 -0
  355. data/lib/trophy/types/webhooks_emails_streak_reminder_due_payload.rb +15 -0
  356. data/lib/trophy/types/webhooks_leaderboard_changed_payload.rb +11 -0
  357. data/lib/trophy/types/webhooks_leaderboard_finished_payload.rb +11 -0
  358. data/lib/trophy/types/webhooks_leaderboard_rank_changed_payload.rb +13 -0
  359. data/lib/trophy/types/webhooks_leaderboard_started_payload.rb +11 -0
  360. data/lib/trophy/types/webhooks_points_boost_finished_payload.rb +13 -0
  361. data/lib/trophy/types/webhooks_points_boost_started_payload.rb +13 -0
  362. data/lib/trophy/types/webhooks_points_changed_payload.rb +13 -0
  363. data/lib/trophy/types/webhooks_points_level_changed_payload.rb +17 -0
  364. data/lib/trophy/types/webhooks_points_level_changed_payload_points.rb +22 -0
  365. data/lib/trophy/types/webhooks_streak_extended_payload.rb +13 -0
  366. data/lib/trophy/types/webhooks_streak_freeze_consumed_payload.rb +15 -0
  367. data/lib/trophy/types/webhooks_streak_freeze_earned_payload.rb +15 -0
  368. data/lib/trophy/types/webhooks_streak_lost_payload.rb +13 -0
  369. data/lib/trophy/types/webhooks_streak_started_payload.rb +13 -0
  370. data/lib/trophy/types/wrapped_activity.rb +22 -0
  371. data/lib/trophy/types/wrapped_activity_period.rb +16 -0
  372. data/lib/trophy/types/wrapped_entire_year.rb +18 -0
  373. data/lib/trophy/types/wrapped_metric.rb +22 -0
  374. data/lib/trophy/types/wrapped_metric_by_attribute_value_value.rb +19 -0
  375. data/lib/trophy/types/wrapped_most_active_day.rb +18 -0
  376. data/lib/trophy/types/wrapped_most_active_month.rb +18 -0
  377. data/lib/trophy/types/wrapped_most_active_week.rb +20 -0
  378. data/lib/trophy/types/wrapped_points.rb +20 -0
  379. data/lib/trophy/types/wrapped_response.rb +13 -0
  380. data/lib/trophy/types/wrapped_streak.rb +18 -0
  381. data/lib/trophy/users/client.rb +612 -0
  382. data/lib/trophy/users/types/update_user_preferences_request.rb +15 -0
  383. data/lib/trophy/users/types/users_achievements_request.rb +13 -0
  384. data/lib/trophy/users/types/users_leaderboard_request.rb +17 -0
  385. data/lib/trophy/users/types/users_metric_event_summary_request.rb +19 -0
  386. data/lib/trophy/users/types/users_metric_event_summary_request_aggregation.rb +15 -0
  387. data/lib/trophy/users/types/users_metric_event_summary_response_item.rb +15 -0
  388. data/lib/trophy/users/types/users_points_event_summary_request.rb +19 -0
  389. data/lib/trophy/users/types/users_points_event_summary_request_aggregation.rb +15 -0
  390. data/lib/trophy/users/types/users_points_event_summary_response_item.rb +15 -0
  391. data/lib/trophy/users/types/users_points_request.rb +15 -0
  392. data/lib/trophy/users/types/users_streak_request.rb +13 -0
  393. data/lib/trophy/users/types/users_wrapped_request.rb +13 -0
  394. data/lib/trophy/version.rb +5 -0
  395. data/lib/trophy.rb +390 -0
  396. data/lib/trophy_api_client.rb +4 -101
  397. data/reference.md +6128 -0
  398. metadata +403 -333
  399. data/lib/requests.rb +0 -189
  400. data/lib/trophy_api_client/achievements/client.rb +0 -196
  401. data/lib/trophy_api_client/admin/attributes/client.rb +0 -378
  402. data/lib/trophy_api_client/admin/client.rb +0 -65
  403. data/lib/trophy_api_client/admin/leaderboards/client.rb +0 -381
  404. data/lib/trophy_api_client/admin/metrics/client.rb +0 -376
  405. data/lib/trophy_api_client/admin/points/boosts/client.rb +0 -410
  406. data/lib/trophy_api_client/admin/points/client.rb +0 -53
  407. data/lib/trophy_api_client/admin/points/levels/client.rb +0 -412
  408. data/lib/trophy_api_client/admin/points/systems/client.rb +0 -384
  409. data/lib/trophy_api_client/admin/points/triggers/client.rb +0 -412
  410. data/lib/trophy_api_client/admin/streaks/client.rb +0 -106
  411. data/lib/trophy_api_client/admin/streaks/freezes/client.rb +0 -100
  412. data/lib/trophy_api_client/admin/streaks/freezes/types/create_streak_freezes_request_freezes_item.rb +0 -62
  413. data/lib/trophy_api_client/admin/streaks/types/restore_streaks_request_users_item.rb +0 -59
  414. data/lib/trophy_api_client/admin/tenants/client.rb +0 -376
  415. data/lib/trophy_api_client/leaderboards/client.rb +0 -225
  416. data/lib/trophy_api_client/leaderboards/types/leaderboards_all_response_item.rb +0 -202
  417. data/lib/trophy_api_client/metrics/client.rb +0 -142
  418. data/lib/trophy_api_client/points/client.rb +0 -424
  419. data/lib/trophy_api_client/streaks/client.rb +0 -104
  420. data/lib/trophy_api_client/types/achievement_completion_response.rb +0 -83
  421. data/lib/trophy_api_client/types/achievement_response.rb +0 -198
  422. data/lib/trophy_api_client/types/achievement_response_event_attribute.rb +0 -67
  423. data/lib/trophy_api_client/types/achievement_response_event_attributes_item.rb +0 -66
  424. data/lib/trophy_api_client/types/achievement_response_trigger.rb +0 -11
  425. data/lib/trophy_api_client/types/achievement_response_user_attributes_item.rb +0 -66
  426. data/lib/trophy_api_client/types/achievement_with_stats_response.rb +0 -214
  427. data/lib/trophy_api_client/types/admin_attribute.rb +0 -81
  428. data/lib/trophy_api_client/types/admin_attribute_type.rb +0 -9
  429. data/lib/trophy_api_client/types/admin_issue.rb +0 -98
  430. data/lib/trophy_api_client/types/admin_issue_severity.rb +0 -9
  431. data/lib/trophy_api_client/types/admin_leaderboard.rb +0 -171
  432. data/lib/trophy_api_client/types/admin_leaderboard_rank_by.rb +0 -10
  433. data/lib/trophy_api_client/types/admin_leaderboard_run_unit.rb +0 -10
  434. data/lib/trophy_api_client/types/admin_leaderboard_status.rb +0 -11
  435. data/lib/trophy_api_client/types/admin_points_boost.rb +0 -138
  436. data/lib/trophy_api_client/types/admin_points_boost_rounding.rb +0 -10
  437. data/lib/trophy_api_client/types/admin_points_boost_status.rb +0 -10
  438. data/lib/trophy_api_client/types/admin_points_boost_user_attributes_item.rb +0 -65
  439. data/lib/trophy_api_client/types/admin_points_level.rb +0 -109
  440. data/lib/trophy_api_client/types/admin_points_level_badge.rb +0 -55
  441. data/lib/trophy_api_client/types/admin_points_system.rb +0 -118
  442. data/lib/trophy_api_client/types/admin_points_system_badge.rb +0 -55
  443. data/lib/trophy_api_client/types/admin_points_system_status.rb +0 -9
  444. data/lib/trophy_api_client/types/admin_points_trigger.rb +0 -175
  445. data/lib/trophy_api_client/types/admin_points_trigger_event_attributes_item.rb +0 -66
  446. data/lib/trophy_api_client/types/admin_points_trigger_status.rb +0 -9
  447. data/lib/trophy_api_client/types/admin_points_trigger_time_unit.rb +0 -9
  448. data/lib/trophy_api_client/types/admin_points_trigger_type.rb +0 -12
  449. data/lib/trophy_api_client/types/admin_points_trigger_user_attributes_item.rb +0 -65
  450. data/lib/trophy_api_client/types/admin_tenant.rb +0 -103
  451. data/lib/trophy_api_client/types/admin_tenant_status.rb +0 -9
  452. data/lib/trophy_api_client/types/base_streak_response.rb +0 -144
  453. data/lib/trophy_api_client/types/bulk_streak_response.rb +0 -7
  454. data/lib/trophy_api_client/types/bulk_streak_response_item.rb +0 -76
  455. data/lib/trophy_api_client/types/create_attribute_request_item.rb +0 -76
  456. data/lib/trophy_api_client/types/create_attribute_request_item_type.rb +0 -9
  457. data/lib/trophy_api_client/types/create_attributes_request.rb +0 -7
  458. data/lib/trophy_api_client/types/create_attributes_response.rb +0 -74
  459. data/lib/trophy_api_client/types/create_leaderboard_request_item.rb +0 -171
  460. data/lib/trophy_api_client/types/create_leaderboard_request_item_rank_by.rb +0 -10
  461. data/lib/trophy_api_client/types/create_leaderboard_request_item_run_unit.rb +0 -11
  462. data/lib/trophy_api_client/types/create_leaderboard_request_item_status.rb +0 -13
  463. data/lib/trophy_api_client/types/create_leaderboards_request.rb +0 -7
  464. data/lib/trophy_api_client/types/create_leaderboards_response.rb +0 -74
  465. data/lib/trophy_api_client/types/create_metric_request_item.rb +0 -87
  466. data/lib/trophy_api_client/types/create_metric_request_item_unit_type.rb +0 -9
  467. data/lib/trophy_api_client/types/create_metrics_request.rb +0 -7
  468. data/lib/trophy_api_client/types/create_metrics_response.rb +0 -74
  469. data/lib/trophy_api_client/types/create_points_boost_request_item.rb +0 -125
  470. data/lib/trophy_api_client/types/create_points_boost_request_item_rounding.rb +0 -10
  471. data/lib/trophy_api_client/types/create_points_boost_request_item_user_attributes_item.rb +0 -67
  472. data/lib/trophy_api_client/types/create_points_boosts_request.rb +0 -7
  473. data/lib/trophy_api_client/types/create_points_boosts_response.rb +0 -75
  474. data/lib/trophy_api_client/types/create_points_level_request_item.rb +0 -103
  475. data/lib/trophy_api_client/types/create_points_level_request_item_badge.rb +0 -56
  476. data/lib/trophy_api_client/types/create_points_levels_request.rb +0 -7
  477. data/lib/trophy_api_client/types/create_points_levels_response.rb +0 -74
  478. data/lib/trophy_api_client/types/create_points_system_request_item.rb +0 -140
  479. data/lib/trophy_api_client/types/create_points_system_request_item_badge.rb +0 -55
  480. data/lib/trophy_api_client/types/create_points_systems_request.rb +0 -7
  481. data/lib/trophy_api_client/types/create_points_systems_response.rb +0 -74
  482. data/lib/trophy_api_client/types/create_points_trigger_request_item.rb +0 -167
  483. data/lib/trophy_api_client/types/create_points_trigger_request_item_event_attributes_item.rb +0 -67
  484. data/lib/trophy_api_client/types/create_points_trigger_request_item_status.rb +0 -9
  485. data/lib/trophy_api_client/types/create_points_trigger_request_item_time_unit.rb +0 -9
  486. data/lib/trophy_api_client/types/create_points_trigger_request_item_type.rb +0 -12
  487. data/lib/trophy_api_client/types/create_points_trigger_request_item_user_attributes_item.rb +0 -67
  488. data/lib/trophy_api_client/types/create_points_triggers_request.rb +0 -7
  489. data/lib/trophy_api_client/types/create_points_triggers_response.rb +0 -74
  490. data/lib/trophy_api_client/types/create_streak_freezes_response.rb +0 -60
  491. data/lib/trophy_api_client/types/create_tenant_request_item.rb +0 -66
  492. data/lib/trophy_api_client/types/create_tenants_request.rb +0 -7
  493. data/lib/trophy_api_client/types/create_tenants_response.rb +0 -74
  494. data/lib/trophy_api_client/types/created_admin_points_system.rb +0 -163
  495. data/lib/trophy_api_client/types/created_metric.rb +0 -88
  496. data/lib/trophy_api_client/types/created_metric_unit_type.rb +0 -9
  497. data/lib/trophy_api_client/types/delete_attributes_response.rb +0 -75
  498. data/lib/trophy_api_client/types/delete_leaderboards_response.rb +0 -75
  499. data/lib/trophy_api_client/types/delete_metrics_response.rb +0 -75
  500. data/lib/trophy_api_client/types/delete_points_boosts_response.rb +0 -74
  501. data/lib/trophy_api_client/types/delete_points_levels_response.rb +0 -74
  502. data/lib/trophy_api_client/types/delete_points_systems_response.rb +0 -74
  503. data/lib/trophy_api_client/types/delete_points_triggers_response.rb +0 -75
  504. data/lib/trophy_api_client/types/delete_tenants_response.rb +0 -74
  505. data/lib/trophy_api_client/types/deleted_resource.rb +0 -56
  506. data/lib/trophy_api_client/types/error_body.rb +0 -55
  507. data/lib/trophy_api_client/types/event_response.rb +0 -147
  508. data/lib/trophy_api_client/types/get_user_points_response.rb +0 -139
  509. data/lib/trophy_api_client/types/leaderboard_event.rb +0 -110
  510. data/lib/trophy_api_client/types/leaderboard_ranking.rb +0 -82
  511. data/lib/trophy_api_client/types/leaderboard_response.rb +0 -192
  512. data/lib/trophy_api_client/types/leaderboard_response_rank_by.rb +0 -10
  513. data/lib/trophy_api_client/types/leaderboard_response_run_unit.rb +0 -11
  514. data/lib/trophy_api_client/types/leaderboard_response_with_rankings.rb +0 -212
  515. data/lib/trophy_api_client/types/leaderboard_response_with_rankings_status.rb +0 -10
  516. data/lib/trophy_api_client/types/list_attributes_response.rb +0 -7
  517. data/lib/trophy_api_client/types/list_leaderboards_response.rb +0 -7
  518. data/lib/trophy_api_client/types/list_metrics_response.rb +0 -7
  519. data/lib/trophy_api_client/types/list_points_boosts_response.rb +0 -7
  520. data/lib/trophy_api_client/types/list_points_levels_response.rb +0 -7
  521. data/lib/trophy_api_client/types/list_points_systems_response.rb +0 -7
  522. data/lib/trophy_api_client/types/list_points_triggers_response.rb +0 -7
  523. data/lib/trophy_api_client/types/list_tenants_response.rb +0 -7
  524. data/lib/trophy_api_client/types/metric_event_leaderboard_response.rb +0 -245
  525. data/lib/trophy_api_client/types/metric_event_leaderboard_response_breakdown_attribute_values_item.rb +0 -67
  526. data/lib/trophy_api_client/types/metric_event_points_response.rb +0 -148
  527. data/lib/trophy_api_client/types/metric_event_streak_response.rb +0 -153
  528. data/lib/trophy_api_client/types/metric_response.rb +0 -90
  529. data/lib/trophy_api_client/types/notification_channel.rb +0 -9
  530. data/lib/trophy_api_client/types/notification_preferences.rb +0 -89
  531. data/lib/trophy_api_client/types/patch_points_boosts_request.rb +0 -7
  532. data/lib/trophy_api_client/types/patch_points_boosts_request_item.rb +0 -118
  533. data/lib/trophy_api_client/types/patch_points_boosts_request_item_rounding.rb +0 -10
  534. data/lib/trophy_api_client/types/patch_points_boosts_request_item_user_attributes_item.rb +0 -67
  535. data/lib/trophy_api_client/types/patch_points_boosts_response.rb +0 -74
  536. data/lib/trophy_api_client/types/patch_points_levels_request.rb +0 -7
  537. data/lib/trophy_api_client/types/patch_points_levels_request_item.rb +0 -100
  538. data/lib/trophy_api_client/types/patch_points_levels_request_item_badge.rb +0 -55
  539. data/lib/trophy_api_client/types/patch_points_levels_response.rb +0 -74
  540. data/lib/trophy_api_client/types/patch_points_triggers_request.rb +0 -7
  541. data/lib/trophy_api_client/types/patch_points_triggers_request_item.rb +0 -174
  542. data/lib/trophy_api_client/types/patch_points_triggers_request_item_event_attributes_item.rb +0 -67
  543. data/lib/trophy_api_client/types/patch_points_triggers_request_item_status.rb +0 -9
  544. data/lib/trophy_api_client/types/patch_points_triggers_request_item_time_unit.rb +0 -9
  545. data/lib/trophy_api_client/types/patch_points_triggers_request_item_type.rb +0 -13
  546. data/lib/trophy_api_client/types/patch_points_triggers_request_item_user_attributes_item.rb +0 -67
  547. data/lib/trophy_api_client/types/patch_points_triggers_response.rb +0 -74
  548. data/lib/trophy_api_client/types/points_award.rb +0 -113
  549. data/lib/trophy_api_client/types/points_boost.rb +0 -112
  550. data/lib/trophy_api_client/types/points_boost_rounding.rb +0 -10
  551. data/lib/trophy_api_client/types/points_boost_status.rb +0 -10
  552. data/lib/trophy_api_client/types/points_boost_webhook_payload.rb +0 -149
  553. data/lib/trophy_api_client/types/points_boost_webhook_payload_rounding.rb +0 -10
  554. data/lib/trophy_api_client/types/points_boost_webhook_payload_status.rb +0 -9
  555. data/lib/trophy_api_client/types/points_level.rb +0 -103
  556. data/lib/trophy_api_client/types/points_level_summary_response.rb +0 -7
  557. data/lib/trophy_api_client/types/points_level_summary_response_item.rb +0 -71
  558. data/lib/trophy_api_client/types/points_range.rb +0 -72
  559. data/lib/trophy_api_client/types/points_response.rb +0 -103
  560. data/lib/trophy_api_client/types/points_summary_response.rb +0 -7
  561. data/lib/trophy_api_client/types/points_system_response.rb +0 -107
  562. data/lib/trophy_api_client/types/points_trigger.rb +0 -227
  563. data/lib/trophy_api_client/types/points_trigger_event_attribute.rb +0 -67
  564. data/lib/trophy_api_client/types/points_trigger_event_attributes_item.rb +0 -65
  565. data/lib/trophy_api_client/types/points_trigger_status.rb +0 -10
  566. data/lib/trophy_api_client/types/points_trigger_time_unit.rb +0 -9
  567. data/lib/trophy_api_client/types/points_trigger_type.rb +0 -12
  568. data/lib/trophy_api_client/types/points_trigger_user_attributes_item.rb +0 -65
  569. data/lib/trophy_api_client/types/restore_streaks_response.rb +0 -70
  570. data/lib/trophy_api_client/types/streak_evaluation_mode_preference.rb +0 -11
  571. data/lib/trophy_api_client/types/streak_frequency.rb +0 -9
  572. data/lib/trophy_api_client/types/streak_metric_preference.rb +0 -66
  573. data/lib/trophy_api_client/types/streak_preferences.rb +0 -74
  574. data/lib/trophy_api_client/types/streak_response.rb +0 -170
  575. data/lib/trophy_api_client/types/streak_response_streak_history_item.rb +0 -89
  576. data/lib/trophy_api_client/types/update_attribute_request_item.rb +0 -69
  577. data/lib/trophy_api_client/types/update_attributes_request.rb +0 -7
  578. data/lib/trophy_api_client/types/update_attributes_response.rb +0 -75
  579. data/lib/trophy_api_client/types/update_leaderboard_request_item.rb +0 -179
  580. data/lib/trophy_api_client/types/update_leaderboard_request_item_rank_by.rb +0 -11
  581. data/lib/trophy_api_client/types/update_leaderboard_request_item_run_unit.rb +0 -9
  582. data/lib/trophy_api_client/types/update_leaderboard_request_item_status.rb +0 -12
  583. data/lib/trophy_api_client/types/update_leaderboards_request.rb +0 -7
  584. data/lib/trophy_api_client/types/update_leaderboards_response.rb +0 -75
  585. data/lib/trophy_api_client/types/update_metric_request_item.rb +0 -86
  586. data/lib/trophy_api_client/types/update_metric_request_item_unit_type.rb +0 -9
  587. data/lib/trophy_api_client/types/update_metrics_request.rb +0 -7
  588. data/lib/trophy_api_client/types/update_metrics_response.rb +0 -75
  589. data/lib/trophy_api_client/types/update_points_system_request_item.rb +0 -102
  590. data/lib/trophy_api_client/types/update_points_system_request_item_badge.rb +0 -55
  591. data/lib/trophy_api_client/types/update_points_systems_request.rb +0 -7
  592. data/lib/trophy_api_client/types/update_points_systems_response.rb +0 -74
  593. data/lib/trophy_api_client/types/update_tenant_request_item.rb +0 -75
  594. data/lib/trophy_api_client/types/update_tenants_request.rb +0 -7
  595. data/lib/trophy_api_client/types/update_tenants_response.rb +0 -74
  596. data/lib/trophy_api_client/types/updated_user.rb +0 -108
  597. data/lib/trophy_api_client/types/upserted_user.rb +0 -116
  598. data/lib/trophy_api_client/types/user.rb +0 -141
  599. data/lib/trophy_api_client/types/user_achievement_response.rb +0 -209
  600. data/lib/trophy_api_client/types/user_achievement_with_stats_response.rb +0 -225
  601. data/lib/trophy_api_client/types/user_leaderboard_response.rb +0 -212
  602. data/lib/trophy_api_client/types/user_leaderboard_response_with_history.rb +0 -224
  603. data/lib/trophy_api_client/types/user_preferences_response.rb +0 -80
  604. data/lib/trophy_api_client/types/webhook_user_leaderboard_response.rb +0 -228
  605. data/lib/trophy_api_client/types/webhooks_achievement_completed_payload.rb +0 -84
  606. data/lib/trophy_api_client/types/webhooks_leaderboard_changed_payload.rb +0 -71
  607. data/lib/trophy_api_client/types/webhooks_leaderboard_finished_payload.rb +0 -71
  608. data/lib/trophy_api_client/types/webhooks_leaderboard_rank_changed_payload.rb +0 -85
  609. data/lib/trophy_api_client/types/webhooks_leaderboard_started_payload.rb +0 -71
  610. data/lib/trophy_api_client/types/webhooks_points_boost_finished_payload.rb +0 -79
  611. data/lib/trophy_api_client/types/webhooks_points_boost_started_payload.rb +0 -79
  612. data/lib/trophy_api_client/types/webhooks_points_changed_payload.rb +0 -84
  613. data/lib/trophy_api_client/types/webhooks_points_level_changed_payload.rb +0 -117
  614. data/lib/trophy_api_client/types/webhooks_points_level_changed_payload_points.rb +0 -114
  615. data/lib/trophy_api_client/types/webhooks_streak_extended_payload.rb +0 -84
  616. data/lib/trophy_api_client/types/webhooks_streak_freeze_consumed_payload.rb +0 -85
  617. data/lib/trophy_api_client/types/webhooks_streak_freeze_earned_payload.rb +0 -85
  618. data/lib/trophy_api_client/types/webhooks_streak_lost_payload.rb +0 -78
  619. data/lib/trophy_api_client/types/webhooks_streak_started_payload.rb +0 -84
  620. data/lib/trophy_api_client/types/wrapped_activity.rb +0 -134
  621. data/lib/trophy_api_client/types/wrapped_activity_period.rb +0 -95
  622. data/lib/trophy_api_client/types/wrapped_entire_year.rb +0 -114
  623. data/lib/trophy_api_client/types/wrapped_metric.rb +0 -119
  624. data/lib/trophy_api_client/types/wrapped_metric_by_attribute_value_value.rb +0 -103
  625. data/lib/trophy_api_client/types/wrapped_most_active_day.rb +0 -108
  626. data/lib/trophy_api_client/types/wrapped_most_active_month.rb +0 -108
  627. data/lib/trophy_api_client/types/wrapped_most_active_week.rb +0 -116
  628. data/lib/trophy_api_client/types/wrapped_points.rb +0 -106
  629. data/lib/trophy_api_client/types/wrapped_response.rb +0 -79
  630. data/lib/trophy_api_client/types/wrapped_streak.rb +0 -96
  631. data/lib/trophy_api_client/users/client.rb +0 -1354
  632. data/lib/trophy_api_client/users/types/users_metric_event_summary_response_item.rb +0 -76
  633. data/lib/trophy_api_client/users/types/users_points_event_summary_response_item.rb +0 -76
  634. data/lib/trophy_api_client/version.rb +0 -3
  635. data/lib/types_export.rb +0 -221
@@ -1,1354 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../../requests"
4
- require_relative "../types/upserted_user"
5
- require_relative "../types/user"
6
- require_relative "../types/updated_user"
7
- require_relative "../types/user_preferences_response"
8
- require_relative "../types/notification_preferences"
9
- require_relative "../types/streak_preferences"
10
- require_relative "../types/metric_response"
11
- require "json"
12
- require_relative "types/users_metric_event_summary_request_aggregation"
13
- require_relative "types/users_metric_event_summary_response_item"
14
- require_relative "../types/user_achievement_with_stats_response"
15
- require_relative "../types/streak_response"
16
- require_relative "../types/get_user_points_response"
17
- require_relative "../types/points_boost"
18
- require_relative "types/users_points_event_summary_request_aggregation"
19
- require_relative "types/users_points_event_summary_response_item"
20
- require_relative "../types/user_leaderboard_response_with_history"
21
- require_relative "../types/wrapped_response"
22
- require "async"
23
-
24
- module TrophyApiClient
25
- class UsersClient
26
- # @return [TrophyApiClient::RequestClient]
27
- attr_reader :request_client
28
-
29
- # @param request_client [TrophyApiClient::RequestClient]
30
- # @return [TrophyApiClient::UsersClient]
31
- def initialize(request_client:)
32
- @request_client = request_client
33
- end
34
-
35
- # Create a new user.
36
- #
37
- # @param request [Hash] Request of type TrophyApiClient::UpsertedUser, as a Hash
38
- # * :id (String)
39
- # * :email (String)
40
- # * :name (String)
41
- # * :tz (String)
42
- # * :device_tokens (Array<String>)
43
- # * :subscribe_to_emails (Boolean)
44
- # * :attributes (Hash{String => String})
45
- # @param request_options [TrophyApiClient::RequestOptions]
46
- # @return [TrophyApiClient::User]
47
- # @example
48
- # api = TrophyApiClient::Client.new(
49
- # base_url: "https://api.example.com",
50
- # environment: TrophyApiClient::Environment::PRODUCTION,
51
- # api_key: "YOUR_API_KEY"
52
- # )
53
- # api.users.create(request: { id: "user-id" })
54
- def create(request:, request_options: nil)
55
- response = @request_client.conn.post do |req|
56
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
57
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
58
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
59
- req.headers = {
60
- **(req.headers || {}),
61
- **@request_client.get_headers,
62
- **(request_options&.additional_headers || {})
63
- }.compact
64
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
65
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
66
- end
67
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
68
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users"
69
- end
70
- TrophyApiClient::User.from_json(json_object: response.body)
71
- end
72
-
73
- # Get a single user.
74
- #
75
- # @param id [String] ID of the user to get.
76
- # @param request_options [TrophyApiClient::RequestOptions]
77
- # @return [TrophyApiClient::User]
78
- # @example
79
- # api = TrophyApiClient::Client.new(
80
- # base_url: "https://api.example.com",
81
- # environment: TrophyApiClient::Environment::PRODUCTION,
82
- # api_key: "YOUR_API_KEY"
83
- # )
84
- # api.users.get(id: "userId")
85
- def get(id:, request_options: nil)
86
- response = @request_client.conn.get do |req|
87
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
88
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
89
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
90
- req.headers = {
91
- **(req.headers || {}),
92
- **@request_client.get_headers,
93
- **(request_options&.additional_headers || {})
94
- }.compact
95
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
96
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
97
- end
98
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
99
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
100
- end
101
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}"
102
- end
103
- TrophyApiClient::User.from_json(json_object: response.body)
104
- end
105
-
106
- # Identify a user.
107
- #
108
- # @param id [String] ID of the user to identify.
109
- # @param request [Hash] The user object.Request of type TrophyApiClient::UpdatedUser, as a Hash
110
- # * :email (String)
111
- # * :name (String)
112
- # * :tz (String)
113
- # * :device_tokens (Array<String>)
114
- # * :subscribe_to_emails (Boolean)
115
- # * :attributes (Hash{String => String})
116
- # @param request_options [TrophyApiClient::RequestOptions]
117
- # @return [TrophyApiClient::User]
118
- # @example
119
- # api = TrophyApiClient::Client.new(
120
- # base_url: "https://api.example.com",
121
- # environment: TrophyApiClient::Environment::PRODUCTION,
122
- # api_key: "YOUR_API_KEY"
123
- # )
124
- # api.users.identify(id: "id", request: { email: "user@example.com", tz: "Europe/London", attributes: { "department": "engineering", "role": "developer" } })
125
- def identify(id:, request:, request_options: nil)
126
- response = @request_client.conn.put do |req|
127
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
128
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
129
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
130
- req.headers = {
131
- **(req.headers || {}),
132
- **@request_client.get_headers,
133
- **(request_options&.additional_headers || {})
134
- }.compact
135
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
136
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
137
- end
138
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
139
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}"
140
- end
141
- TrophyApiClient::User.from_json(json_object: response.body)
142
- end
143
-
144
- # Update a user.
145
- #
146
- # @param id [String] ID of the user to update.
147
- # @param request [Hash] The user object.Request of type TrophyApiClient::UpdatedUser, as a Hash
148
- # * :email (String)
149
- # * :name (String)
150
- # * :tz (String)
151
- # * :device_tokens (Array<String>)
152
- # * :subscribe_to_emails (Boolean)
153
- # * :attributes (Hash{String => String})
154
- # @param request_options [TrophyApiClient::RequestOptions]
155
- # @return [TrophyApiClient::User]
156
- # @example
157
- # api = TrophyApiClient::Client.new(
158
- # base_url: "https://api.example.com",
159
- # environment: TrophyApiClient::Environment::PRODUCTION,
160
- # api_key: "YOUR_API_KEY"
161
- # )
162
- # api.users.update(id: "id", request: { email: "user@example.com", tz: "Europe/London", attributes: { "department": "engineering", "role": "developer" } })
163
- def update(id:, request:, request_options: nil)
164
- response = @request_client.conn.patch do |req|
165
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
166
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
167
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
168
- req.headers = {
169
- **(req.headers || {}),
170
- **@request_client.get_headers,
171
- **(request_options&.additional_headers || {})
172
- }.compact
173
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
174
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
175
- end
176
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
177
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}"
178
- end
179
- TrophyApiClient::User.from_json(json_object: response.body)
180
- end
181
-
182
- # Get a user's notification preferences.
183
- #
184
- # @param id [String] The user's ID in your database.
185
- # @param request_options [TrophyApiClient::RequestOptions]
186
- # @return [TrophyApiClient::UserPreferencesResponse]
187
- # @example
188
- # api = TrophyApiClient::Client.new(
189
- # base_url: "https://api.example.com",
190
- # environment: TrophyApiClient::Environment::PRODUCTION,
191
- # api_key: "YOUR_API_KEY"
192
- # )
193
- # api.users.get_preferences(id: "user-123")
194
- def get_preferences(id:, request_options: nil)
195
- response = @request_client.conn.get do |req|
196
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
197
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
198
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
199
- req.headers = {
200
- **(req.headers || {}),
201
- **@request_client.get_headers,
202
- **(request_options&.additional_headers || {})
203
- }.compact
204
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
205
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
206
- end
207
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
208
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
209
- end
210
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/preferences"
211
- end
212
- TrophyApiClient::UserPreferencesResponse.from_json(json_object: response.body)
213
- end
214
-
215
- # Update a user's notification and streak preferences. Streak preferences require
216
- # streak customization to be enabled in your Trophy dashboard settings.
217
- #
218
- # @param id [String] The user's ID in your database.
219
- # @param notifications [Hash] Request of type TrophyApiClient::NotificationPreferences, as a Hash
220
- # * :achievement_completed (Array<TrophyApiClient::NotificationChannel>)
221
- # * :recap (Array<TrophyApiClient::NotificationChannel>)
222
- # * :reactivation (Array<TrophyApiClient::NotificationChannel>)
223
- # * :streak_reminder (Array<TrophyApiClient::NotificationChannel>)
224
- # @param streak [Hash] Request of type TrophyApiClient::StreakPreferences, as a Hash
225
- # * :evaluation_mode (TrophyApiClient::StreakEvaluationModePreference)
226
- # * :metrics (Array<TrophyApiClient::StreakMetricPreference>)
227
- # @param request_options [TrophyApiClient::RequestOptions]
228
- # @return [TrophyApiClient::UserPreferencesResponse]
229
- # @example
230
- # api = TrophyApiClient::Client.new(
231
- # base_url: "https://api.example.com",
232
- # environment: TrophyApiClient::Environment::PRODUCTION,
233
- # api_key: "YOUR_API_KEY"
234
- # )
235
- # api.users.update_preferences(id: "user-123", notifications: { streak_reminder: [EMAIL] })
236
- def update_preferences(id:, notifications: nil, streak: nil, request_options: nil)
237
- response = @request_client.conn.patch do |req|
238
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
239
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
240
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
241
- req.headers = {
242
- **(req.headers || {}),
243
- **@request_client.get_headers,
244
- **(request_options&.additional_headers || {})
245
- }.compact
246
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
247
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
248
- end
249
- req.body = {
250
- **(request_options&.additional_body_parameters || {}),
251
- notifications: notifications,
252
- streak: streak
253
- }.compact
254
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/preferences"
255
- end
256
- TrophyApiClient::UserPreferencesResponse.from_json(json_object: response.body)
257
- end
258
-
259
- # Get a single user's progress against all active metrics.
260
- #
261
- # @param id [String] ID of the user
262
- # @param request_options [TrophyApiClient::RequestOptions]
263
- # @return [Array<TrophyApiClient::MetricResponse>]
264
- # @example
265
- # api = TrophyApiClient::Client.new(
266
- # base_url: "https://api.example.com",
267
- # environment: TrophyApiClient::Environment::PRODUCTION,
268
- # api_key: "YOUR_API_KEY"
269
- # )
270
- # api.users.all_metrics(id: "userId")
271
- def all_metrics(id:, request_options: nil)
272
- response = @request_client.conn.get do |req|
273
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
274
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
275
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
276
- req.headers = {
277
- **(req.headers || {}),
278
- **@request_client.get_headers,
279
- **(request_options&.additional_headers || {})
280
- }.compact
281
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
282
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
283
- end
284
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
285
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
286
- end
287
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/metrics"
288
- end
289
- parsed_json = JSON.parse(response.body)
290
- parsed_json&.map do |item|
291
- item = item.to_json
292
- TrophyApiClient::MetricResponse.from_json(json_object: item)
293
- end
294
- end
295
-
296
- # Get a user's progress against a single active metric.
297
- #
298
- # @param id [String] ID of the user.
299
- # @param key [String] Unique key of the metric.
300
- # @param request_options [TrophyApiClient::RequestOptions]
301
- # @return [TrophyApiClient::MetricResponse]
302
- # @example
303
- # api = TrophyApiClient::Client.new(
304
- # base_url: "https://api.example.com",
305
- # environment: TrophyApiClient::Environment::PRODUCTION,
306
- # api_key: "YOUR_API_KEY"
307
- # )
308
- # api.users.single_metric(id: "userId", key: "key")
309
- def single_metric(id:, key:, request_options: nil)
310
- response = @request_client.conn.get do |req|
311
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
312
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
313
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
314
- req.headers = {
315
- **(req.headers || {}),
316
- **@request_client.get_headers,
317
- **(request_options&.additional_headers || {})
318
- }.compact
319
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
320
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
321
- end
322
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
323
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
324
- end
325
- req.url "#{@request_client.get_url(environment: api,
326
- request_options: request_options)}/users/#{id}/metrics/#{key}"
327
- end
328
- TrophyApiClient::MetricResponse.from_json(json_object: response.body)
329
- end
330
-
331
- # Get a summary of metric events over time for a user.
332
- #
333
- # @param id [String] ID of the user.
334
- # @param key [String] Unique key of the metric.
335
- # @param aggregation [TrophyApiClient::Users::UsersMetricEventSummaryRequestAggregation] The time period over which to aggregate the event data.
336
- # @param start_date [String] The start date for the data range in YYYY-MM-DD format. The startDate must be
337
- # before the endDate, and the date range must not exceed 400 days.
338
- # @param end_date [String] The end date for the data range in YYYY-MM-DD format. The endDate must be after
339
- # the startDate, and the date range must not exceed 400 days.
340
- # @param request_options [TrophyApiClient::RequestOptions]
341
- # @return [Array<TrophyApiClient::Users::UsersMetricEventSummaryResponseItem>]
342
- # @example
343
- # api = TrophyApiClient::Client.new(
344
- # base_url: "https://api.example.com",
345
- # environment: TrophyApiClient::Environment::PRODUCTION,
346
- # api_key: "YOUR_API_KEY"
347
- # )
348
- # api.users.metric_event_summary(
349
- # id: "userId",
350
- # key: "words-written",
351
- # aggregation: DAILY,
352
- # start_date: "2024-01-01",
353
- # end_date: "2024-01-31"
354
- # )
355
- def metric_event_summary(id:, key:, aggregation:, start_date:, end_date:, request_options: nil)
356
- response = @request_client.conn.get do |req|
357
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
358
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
359
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
360
- req.headers = {
361
- **(req.headers || {}),
362
- **@request_client.get_headers,
363
- **(request_options&.additional_headers || {})
364
- }.compact
365
- req.params = {
366
- **(request_options&.additional_query_parameters || {}),
367
- "aggregation": aggregation,
368
- "startDate": start_date,
369
- "endDate": end_date
370
- }.compact
371
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
372
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
373
- end
374
- req.url "#{@request_client.get_url(environment: api,
375
- request_options: request_options)}/users/#{id}/metrics/#{key}/event-summary"
376
- end
377
- parsed_json = JSON.parse(response.body)
378
- parsed_json&.map do |item|
379
- item = item.to_json
380
- TrophyApiClient::Users::UsersMetricEventSummaryResponseItem.from_json(json_object: item)
381
- end
382
- end
383
-
384
- # Get a user's achievements.
385
- #
386
- # @param id [String] ID of the user.
387
- # @param include_incomplete [String] When set to 'true', returns both completed and incomplete achievements for the
388
- # user. When omitted or set to any other value, returns only completed
389
- # achievements.
390
- # @param request_options [TrophyApiClient::RequestOptions]
391
- # @return [Array<TrophyApiClient::UserAchievementWithStatsResponse>]
392
- # @example
393
- # api = TrophyApiClient::Client.new(
394
- # base_url: "https://api.example.com",
395
- # environment: TrophyApiClient::Environment::PRODUCTION,
396
- # api_key: "YOUR_API_KEY"
397
- # )
398
- # api.users.achievements(id: "userId", include_incomplete: "true")
399
- def achievements(id:, include_incomplete: nil, request_options: nil)
400
- response = @request_client.conn.get do |req|
401
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
402
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
403
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
404
- req.headers = {
405
- **(req.headers || {}),
406
- **@request_client.get_headers,
407
- **(request_options&.additional_headers || {})
408
- }.compact
409
- req.params = {
410
- **(request_options&.additional_query_parameters || {}),
411
- "includeIncomplete": include_incomplete
412
- }.compact
413
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
414
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
415
- end
416
- req.url "#{@request_client.get_url(environment: api,
417
- request_options: request_options)}/users/#{id}/achievements"
418
- end
419
- parsed_json = JSON.parse(response.body)
420
- parsed_json&.map do |item|
421
- item = item.to_json
422
- TrophyApiClient::UserAchievementWithStatsResponse.from_json(json_object: item)
423
- end
424
- end
425
-
426
- # Get a user's streak data.
427
- #
428
- # @param id [String] ID of the user.
429
- # @param history_periods [Integer] The number of past streak periods to include in the streakHistory field of the
430
- # response.
431
- # @param request_options [TrophyApiClient::RequestOptions]
432
- # @return [TrophyApiClient::StreakResponse]
433
- # @example
434
- # api = TrophyApiClient::Client.new(
435
- # base_url: "https://api.example.com",
436
- # environment: TrophyApiClient::Environment::PRODUCTION,
437
- # api_key: "YOUR_API_KEY"
438
- # )
439
- # api.users.streak(id: "userId", history_periods: 1)
440
- def streak(id:, history_periods: nil, request_options: nil)
441
- response = @request_client.conn.get do |req|
442
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
443
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
444
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
445
- req.headers = {
446
- **(req.headers || {}),
447
- **@request_client.get_headers,
448
- **(request_options&.additional_headers || {})
449
- }.compact
450
- req.params = {
451
- **(request_options&.additional_query_parameters || {}),
452
- "historyPeriods": history_periods
453
- }.compact
454
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
455
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
456
- end
457
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/streak"
458
- end
459
- TrophyApiClient::StreakResponse.from_json(json_object: response.body)
460
- end
461
-
462
- # Get a user's points for a specific points system.
463
- #
464
- # @param id [String] ID of the user.
465
- # @param key [String] Key of the points system.
466
- # @param awards [Integer] The number of recent point awards to return.
467
- # @param request_options [TrophyApiClient::RequestOptions]
468
- # @return [TrophyApiClient::GetUserPointsResponse]
469
- # @example
470
- # api = TrophyApiClient::Client.new(
471
- # base_url: "https://api.example.com",
472
- # environment: TrophyApiClient::Environment::PRODUCTION,
473
- # api_key: "YOUR_API_KEY"
474
- # )
475
- # api.users.points(
476
- # id: "userId",
477
- # key: "points-system-key",
478
- # awards: 1
479
- # )
480
- def points(id:, key:, awards: nil, request_options: nil)
481
- response = @request_client.conn.get do |req|
482
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
483
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
484
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
485
- req.headers = {
486
- **(req.headers || {}),
487
- **@request_client.get_headers,
488
- **(request_options&.additional_headers || {})
489
- }.compact
490
- req.params = { **(request_options&.additional_query_parameters || {}), "awards": awards }.compact
491
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
492
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
493
- end
494
- req.url "#{@request_client.get_url(environment: api,
495
- request_options: request_options)}/users/#{id}/points/#{key}"
496
- end
497
- TrophyApiClient::GetUserPointsResponse.from_json(json_object: response.body)
498
- end
499
-
500
- # Get active points boosts for a user in a specific points system. Returns both
501
- # global boosts the user is eligible for and user-specific boosts.
502
- #
503
- # @param id [String] ID of the user.
504
- # @param key [String] Key of the points system.
505
- # @param request_options [TrophyApiClient::RequestOptions]
506
- # @return [Array<TrophyApiClient::PointsBoost>]
507
- # @example
508
- # api = TrophyApiClient::Client.new(
509
- # base_url: "https://api.example.com",
510
- # environment: TrophyApiClient::Environment::PRODUCTION,
511
- # api_key: "YOUR_API_KEY"
512
- # )
513
- # api.users.points_boosts(id: "userId", key: "points-system-key")
514
- def points_boosts(id:, key:, request_options: nil)
515
- response = @request_client.conn.get do |req|
516
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
517
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
518
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
519
- req.headers = {
520
- **(req.headers || {}),
521
- **@request_client.get_headers,
522
- **(request_options&.additional_headers || {})
523
- }.compact
524
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
525
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
526
- end
527
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
528
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
529
- end
530
- req.url "#{@request_client.get_url(environment: api,
531
- request_options: request_options)}/users/#{id}/points/#{key}/boosts"
532
- end
533
- parsed_json = JSON.parse(response.body)
534
- parsed_json&.map do |item|
535
- item = item.to_json
536
- TrophyApiClient::PointsBoost.from_json(json_object: item)
537
- end
538
- end
539
-
540
- # Get a summary of points awards over time for a user for a specific points
541
- # system.
542
- #
543
- # @param id [String] ID of the user.
544
- # @param key [String] Key of the points system.
545
- # @param aggregation [TrophyApiClient::Users::UsersPointsEventSummaryRequestAggregation] The time period over which to aggregate the event data.
546
- # @param start_date [String] The start date for the data range in YYYY-MM-DD format. The startDate must be
547
- # before the endDate, and the date range must not exceed 400 days.
548
- # @param end_date [String] The end date for the data range in YYYY-MM-DD format. The endDate must be after
549
- # the startDate, and the date range must not exceed 400 days.
550
- # @param request_options [TrophyApiClient::RequestOptions]
551
- # @return [Array<TrophyApiClient::Users::UsersPointsEventSummaryResponseItem>]
552
- # @example
553
- # api = TrophyApiClient::Client.new(
554
- # base_url: "https://api.example.com",
555
- # environment: TrophyApiClient::Environment::PRODUCTION,
556
- # api_key: "YOUR_API_KEY"
557
- # )
558
- # api.users.points_event_summary(
559
- # id: "userId",
560
- # key: "points-system-key",
561
- # aggregation: DAILY,
562
- # start_date: "2024-01-01",
563
- # end_date: "2024-01-31"
564
- # )
565
- def points_event_summary(id:, key:, aggregation:, start_date:, end_date:, request_options: nil)
566
- response = @request_client.conn.get do |req|
567
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
568
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
569
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
570
- req.headers = {
571
- **(req.headers || {}),
572
- **@request_client.get_headers,
573
- **(request_options&.additional_headers || {})
574
- }.compact
575
- req.params = {
576
- **(request_options&.additional_query_parameters || {}),
577
- "aggregation": aggregation,
578
- "startDate": start_date,
579
- "endDate": end_date
580
- }.compact
581
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
582
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
583
- end
584
- req.url "#{@request_client.get_url(environment: api,
585
- request_options: request_options)}/users/#{id}/points/#{key}/event-summary"
586
- end
587
- parsed_json = JSON.parse(response.body)
588
- parsed_json&.map do |item|
589
- item = item.to_json
590
- TrophyApiClient::Users::UsersPointsEventSummaryResponseItem.from_json(json_object: item)
591
- end
592
- end
593
-
594
- # Get a user's rank, value, and daily ranking history for a specific leaderboard.
595
- #
596
- # @param id [String] The user's ID in your database.
597
- # @param key [String] Unique key of the leaderboard as set when created.
598
- # @param run [String] Specific run date in YYYY-MM-DD format. If not provided, returns the current
599
- # run.
600
- # @param num_events [Integer] The number of days to return in the leaderboard history for the user.
601
- # @param request_options [TrophyApiClient::RequestOptions]
602
- # @return [TrophyApiClient::UserLeaderboardResponseWithHistory]
603
- # @example
604
- # api = TrophyApiClient::Client.new(
605
- # base_url: "https://api.example.com",
606
- # environment: TrophyApiClient::Environment::PRODUCTION,
607
- # api_key: "YOUR_API_KEY"
608
- # )
609
- # api.users.leaderboard(
610
- # id: "user-123",
611
- # key: "weekly-words",
612
- # run: "2025-01-15",
613
- # num_events: 1
614
- # )
615
- def leaderboard(id:, key:, run: nil, num_events: nil, request_options: nil)
616
- response = @request_client.conn.get do |req|
617
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
618
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
619
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
620
- req.headers = {
621
- **(req.headers || {}),
622
- **@request_client.get_headers,
623
- **(request_options&.additional_headers || {})
624
- }.compact
625
- req.params = {
626
- **(request_options&.additional_query_parameters || {}),
627
- "run": run,
628
- "numEvents": num_events
629
- }.compact
630
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
631
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
632
- end
633
- req.url "#{@request_client.get_url(environment: api,
634
- request_options: request_options)}/users/#{id}/leaderboards/#{key}"
635
- end
636
- TrophyApiClient::UserLeaderboardResponseWithHistory.from_json(json_object: response.body)
637
- end
638
-
639
- # Get a user's year-in-review wrapped data.
640
- #
641
- # @param id [String] The user's ID in your database.
642
- # @param year [Integer] The year to get wrapped data for. Defaults to the current year. Must be an
643
- # integer between 1 and the current year.
644
- # @param request_options [TrophyApiClient::RequestOptions]
645
- # @return [TrophyApiClient::WrappedResponse]
646
- # @example
647
- # api = TrophyApiClient::Client.new(
648
- # base_url: "https://api.example.com",
649
- # environment: TrophyApiClient::Environment::PRODUCTION,
650
- # api_key: "YOUR_API_KEY"
651
- # )
652
- # api.users.wrapped(id: "user-123", year: 1)
653
- def wrapped(id:, year: nil, request_options: nil)
654
- response = @request_client.conn.get do |req|
655
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
656
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
657
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
658
- req.headers = {
659
- **(req.headers || {}),
660
- **@request_client.get_headers,
661
- **(request_options&.additional_headers || {})
662
- }.compact
663
- req.params = { **(request_options&.additional_query_parameters || {}), "year": year }.compact
664
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
665
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
666
- end
667
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/wrapped"
668
- end
669
- TrophyApiClient::WrappedResponse.from_json(json_object: response.body)
670
- end
671
- end
672
-
673
- class AsyncUsersClient
674
- # @return [TrophyApiClient::AsyncRequestClient]
675
- attr_reader :request_client
676
-
677
- # @param request_client [TrophyApiClient::AsyncRequestClient]
678
- # @return [TrophyApiClient::AsyncUsersClient]
679
- def initialize(request_client:)
680
- @request_client = request_client
681
- end
682
-
683
- # Create a new user.
684
- #
685
- # @param request [Hash] Request of type TrophyApiClient::UpsertedUser, as a Hash
686
- # * :id (String)
687
- # * :email (String)
688
- # * :name (String)
689
- # * :tz (String)
690
- # * :device_tokens (Array<String>)
691
- # * :subscribe_to_emails (Boolean)
692
- # * :attributes (Hash{String => String})
693
- # @param request_options [TrophyApiClient::RequestOptions]
694
- # @return [TrophyApiClient::User]
695
- # @example
696
- # api = TrophyApiClient::Client.new(
697
- # base_url: "https://api.example.com",
698
- # environment: TrophyApiClient::Environment::PRODUCTION,
699
- # api_key: "YOUR_API_KEY"
700
- # )
701
- # api.users.create(request: { id: "user-id" })
702
- def create(request:, request_options: nil)
703
- Async do
704
- response = @request_client.conn.post do |req|
705
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
706
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
707
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
708
- req.headers = {
709
- **(req.headers || {}),
710
- **@request_client.get_headers,
711
- **(request_options&.additional_headers || {})
712
- }.compact
713
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
714
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
715
- end
716
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
717
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users"
718
- end
719
- TrophyApiClient::User.from_json(json_object: response.body)
720
- end
721
- end
722
-
723
- # Get a single user.
724
- #
725
- # @param id [String] ID of the user to get.
726
- # @param request_options [TrophyApiClient::RequestOptions]
727
- # @return [TrophyApiClient::User]
728
- # @example
729
- # api = TrophyApiClient::Client.new(
730
- # base_url: "https://api.example.com",
731
- # environment: TrophyApiClient::Environment::PRODUCTION,
732
- # api_key: "YOUR_API_KEY"
733
- # )
734
- # api.users.get(id: "userId")
735
- def get(id:, request_options: nil)
736
- Async do
737
- response = @request_client.conn.get do |req|
738
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
739
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
740
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
741
- req.headers = {
742
- **(req.headers || {}),
743
- **@request_client.get_headers,
744
- **(request_options&.additional_headers || {})
745
- }.compact
746
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
747
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
748
- end
749
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
750
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
751
- end
752
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}"
753
- end
754
- TrophyApiClient::User.from_json(json_object: response.body)
755
- end
756
- end
757
-
758
- # Identify a user.
759
- #
760
- # @param id [String] ID of the user to identify.
761
- # @param request [Hash] The user object.Request of type TrophyApiClient::UpdatedUser, as a Hash
762
- # * :email (String)
763
- # * :name (String)
764
- # * :tz (String)
765
- # * :device_tokens (Array<String>)
766
- # * :subscribe_to_emails (Boolean)
767
- # * :attributes (Hash{String => String})
768
- # @param request_options [TrophyApiClient::RequestOptions]
769
- # @return [TrophyApiClient::User]
770
- # @example
771
- # api = TrophyApiClient::Client.new(
772
- # base_url: "https://api.example.com",
773
- # environment: TrophyApiClient::Environment::PRODUCTION,
774
- # api_key: "YOUR_API_KEY"
775
- # )
776
- # api.users.identify(id: "id", request: { email: "user@example.com", tz: "Europe/London", attributes: { "department": "engineering", "role": "developer" } })
777
- def identify(id:, request:, request_options: nil)
778
- Async do
779
- response = @request_client.conn.put do |req|
780
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
781
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
782
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
783
- req.headers = {
784
- **(req.headers || {}),
785
- **@request_client.get_headers,
786
- **(request_options&.additional_headers || {})
787
- }.compact
788
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
789
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
790
- end
791
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
792
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}"
793
- end
794
- TrophyApiClient::User.from_json(json_object: response.body)
795
- end
796
- end
797
-
798
- # Update a user.
799
- #
800
- # @param id [String] ID of the user to update.
801
- # @param request [Hash] The user object.Request of type TrophyApiClient::UpdatedUser, as a Hash
802
- # * :email (String)
803
- # * :name (String)
804
- # * :tz (String)
805
- # * :device_tokens (Array<String>)
806
- # * :subscribe_to_emails (Boolean)
807
- # * :attributes (Hash{String => String})
808
- # @param request_options [TrophyApiClient::RequestOptions]
809
- # @return [TrophyApiClient::User]
810
- # @example
811
- # api = TrophyApiClient::Client.new(
812
- # base_url: "https://api.example.com",
813
- # environment: TrophyApiClient::Environment::PRODUCTION,
814
- # api_key: "YOUR_API_KEY"
815
- # )
816
- # api.users.update(id: "id", request: { email: "user@example.com", tz: "Europe/London", attributes: { "department": "engineering", "role": "developer" } })
817
- def update(id:, request:, request_options: nil)
818
- Async do
819
- response = @request_client.conn.patch do |req|
820
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
821
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
822
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
823
- req.headers = {
824
- **(req.headers || {}),
825
- **@request_client.get_headers,
826
- **(request_options&.additional_headers || {})
827
- }.compact
828
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
829
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
830
- end
831
- req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
832
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}"
833
- end
834
- TrophyApiClient::User.from_json(json_object: response.body)
835
- end
836
- end
837
-
838
- # Get a user's notification preferences.
839
- #
840
- # @param id [String] The user's ID in your database.
841
- # @param request_options [TrophyApiClient::RequestOptions]
842
- # @return [TrophyApiClient::UserPreferencesResponse]
843
- # @example
844
- # api = TrophyApiClient::Client.new(
845
- # base_url: "https://api.example.com",
846
- # environment: TrophyApiClient::Environment::PRODUCTION,
847
- # api_key: "YOUR_API_KEY"
848
- # )
849
- # api.users.get_preferences(id: "user-123")
850
- def get_preferences(id:, request_options: nil)
851
- Async do
852
- response = @request_client.conn.get do |req|
853
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
854
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
855
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
856
- req.headers = {
857
- **(req.headers || {}),
858
- **@request_client.get_headers,
859
- **(request_options&.additional_headers || {})
860
- }.compact
861
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
862
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
863
- end
864
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
865
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
866
- end
867
- req.url "#{@request_client.get_url(environment: api,
868
- request_options: request_options)}/users/#{id}/preferences"
869
- end
870
- TrophyApiClient::UserPreferencesResponse.from_json(json_object: response.body)
871
- end
872
- end
873
-
874
- # Update a user's notification and streak preferences. Streak preferences require
875
- # streak customization to be enabled in your Trophy dashboard settings.
876
- #
877
- # @param id [String] The user's ID in your database.
878
- # @param notifications [Hash] Request of type TrophyApiClient::NotificationPreferences, as a Hash
879
- # * :achievement_completed (Array<TrophyApiClient::NotificationChannel>)
880
- # * :recap (Array<TrophyApiClient::NotificationChannel>)
881
- # * :reactivation (Array<TrophyApiClient::NotificationChannel>)
882
- # * :streak_reminder (Array<TrophyApiClient::NotificationChannel>)
883
- # @param streak [Hash] Request of type TrophyApiClient::StreakPreferences, as a Hash
884
- # * :evaluation_mode (TrophyApiClient::StreakEvaluationModePreference)
885
- # * :metrics (Array<TrophyApiClient::StreakMetricPreference>)
886
- # @param request_options [TrophyApiClient::RequestOptions]
887
- # @return [TrophyApiClient::UserPreferencesResponse]
888
- # @example
889
- # api = TrophyApiClient::Client.new(
890
- # base_url: "https://api.example.com",
891
- # environment: TrophyApiClient::Environment::PRODUCTION,
892
- # api_key: "YOUR_API_KEY"
893
- # )
894
- # api.users.update_preferences(id: "user-123", notifications: { streak_reminder: [EMAIL] })
895
- def update_preferences(id:, notifications: nil, streak: nil, request_options: nil)
896
- Async do
897
- response = @request_client.conn.patch do |req|
898
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
899
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
900
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
901
- req.headers = {
902
- **(req.headers || {}),
903
- **@request_client.get_headers,
904
- **(request_options&.additional_headers || {})
905
- }.compact
906
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
907
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
908
- end
909
- req.body = {
910
- **(request_options&.additional_body_parameters || {}),
911
- notifications: notifications,
912
- streak: streak
913
- }.compact
914
- req.url "#{@request_client.get_url(environment: api,
915
- request_options: request_options)}/users/#{id}/preferences"
916
- end
917
- TrophyApiClient::UserPreferencesResponse.from_json(json_object: response.body)
918
- end
919
- end
920
-
921
- # Get a single user's progress against all active metrics.
922
- #
923
- # @param id [String] ID of the user
924
- # @param request_options [TrophyApiClient::RequestOptions]
925
- # @return [Array<TrophyApiClient::MetricResponse>]
926
- # @example
927
- # api = TrophyApiClient::Client.new(
928
- # base_url: "https://api.example.com",
929
- # environment: TrophyApiClient::Environment::PRODUCTION,
930
- # api_key: "YOUR_API_KEY"
931
- # )
932
- # api.users.all_metrics(id: "userId")
933
- def all_metrics(id:, request_options: nil)
934
- Async do
935
- response = @request_client.conn.get do |req|
936
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
937
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
938
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
939
- req.headers = {
940
- **(req.headers || {}),
941
- **@request_client.get_headers,
942
- **(request_options&.additional_headers || {})
943
- }.compact
944
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
945
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
946
- end
947
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
948
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
949
- end
950
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/metrics"
951
- end
952
- parsed_json = JSON.parse(response.body)
953
- parsed_json&.map do |item|
954
- item = item.to_json
955
- TrophyApiClient::MetricResponse.from_json(json_object: item)
956
- end
957
- end
958
- end
959
-
960
- # Get a user's progress against a single active metric.
961
- #
962
- # @param id [String] ID of the user.
963
- # @param key [String] Unique key of the metric.
964
- # @param request_options [TrophyApiClient::RequestOptions]
965
- # @return [TrophyApiClient::MetricResponse]
966
- # @example
967
- # api = TrophyApiClient::Client.new(
968
- # base_url: "https://api.example.com",
969
- # environment: TrophyApiClient::Environment::PRODUCTION,
970
- # api_key: "YOUR_API_KEY"
971
- # )
972
- # api.users.single_metric(id: "userId", key: "key")
973
- def single_metric(id:, key:, request_options: nil)
974
- Async do
975
- response = @request_client.conn.get do |req|
976
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
977
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
978
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
979
- req.headers = {
980
- **(req.headers || {}),
981
- **@request_client.get_headers,
982
- **(request_options&.additional_headers || {})
983
- }.compact
984
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
985
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
986
- end
987
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
988
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
989
- end
990
- req.url "#{@request_client.get_url(environment: api,
991
- request_options: request_options)}/users/#{id}/metrics/#{key}"
992
- end
993
- TrophyApiClient::MetricResponse.from_json(json_object: response.body)
994
- end
995
- end
996
-
997
- # Get a summary of metric events over time for a user.
998
- #
999
- # @param id [String] ID of the user.
1000
- # @param key [String] Unique key of the metric.
1001
- # @param aggregation [TrophyApiClient::Users::UsersMetricEventSummaryRequestAggregation] The time period over which to aggregate the event data.
1002
- # @param start_date [String] The start date for the data range in YYYY-MM-DD format. The startDate must be
1003
- # before the endDate, and the date range must not exceed 400 days.
1004
- # @param end_date [String] The end date for the data range in YYYY-MM-DD format. The endDate must be after
1005
- # the startDate, and the date range must not exceed 400 days.
1006
- # @param request_options [TrophyApiClient::RequestOptions]
1007
- # @return [Array<TrophyApiClient::Users::UsersMetricEventSummaryResponseItem>]
1008
- # @example
1009
- # api = TrophyApiClient::Client.new(
1010
- # base_url: "https://api.example.com",
1011
- # environment: TrophyApiClient::Environment::PRODUCTION,
1012
- # api_key: "YOUR_API_KEY"
1013
- # )
1014
- # api.users.metric_event_summary(
1015
- # id: "userId",
1016
- # key: "words-written",
1017
- # aggregation: DAILY,
1018
- # start_date: "2024-01-01",
1019
- # end_date: "2024-01-31"
1020
- # )
1021
- def metric_event_summary(id:, key:, aggregation:, start_date:, end_date:, request_options: nil)
1022
- Async do
1023
- response = @request_client.conn.get do |req|
1024
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1025
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1026
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1027
- req.headers = {
1028
- **(req.headers || {}),
1029
- **@request_client.get_headers,
1030
- **(request_options&.additional_headers || {})
1031
- }.compact
1032
- req.params = {
1033
- **(request_options&.additional_query_parameters || {}),
1034
- "aggregation": aggregation,
1035
- "startDate": start_date,
1036
- "endDate": end_date
1037
- }.compact
1038
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1039
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1040
- end
1041
- req.url "#{@request_client.get_url(environment: api,
1042
- request_options: request_options)}/users/#{id}/metrics/#{key}/event-summary"
1043
- end
1044
- parsed_json = JSON.parse(response.body)
1045
- parsed_json&.map do |item|
1046
- item = item.to_json
1047
- TrophyApiClient::Users::UsersMetricEventSummaryResponseItem.from_json(json_object: item)
1048
- end
1049
- end
1050
- end
1051
-
1052
- # Get a user's achievements.
1053
- #
1054
- # @param id [String] ID of the user.
1055
- # @param include_incomplete [String] When set to 'true', returns both completed and incomplete achievements for the
1056
- # user. When omitted or set to any other value, returns only completed
1057
- # achievements.
1058
- # @param request_options [TrophyApiClient::RequestOptions]
1059
- # @return [Array<TrophyApiClient::UserAchievementWithStatsResponse>]
1060
- # @example
1061
- # api = TrophyApiClient::Client.new(
1062
- # base_url: "https://api.example.com",
1063
- # environment: TrophyApiClient::Environment::PRODUCTION,
1064
- # api_key: "YOUR_API_KEY"
1065
- # )
1066
- # api.users.achievements(id: "userId", include_incomplete: "true")
1067
- def achievements(id:, include_incomplete: nil, request_options: nil)
1068
- Async do
1069
- response = @request_client.conn.get do |req|
1070
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1071
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1072
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1073
- req.headers = {
1074
- **(req.headers || {}),
1075
- **@request_client.get_headers,
1076
- **(request_options&.additional_headers || {})
1077
- }.compact
1078
- req.params = {
1079
- **(request_options&.additional_query_parameters || {}),
1080
- "includeIncomplete": include_incomplete
1081
- }.compact
1082
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1083
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1084
- end
1085
- req.url "#{@request_client.get_url(environment: api,
1086
- request_options: request_options)}/users/#{id}/achievements"
1087
- end
1088
- parsed_json = JSON.parse(response.body)
1089
- parsed_json&.map do |item|
1090
- item = item.to_json
1091
- TrophyApiClient::UserAchievementWithStatsResponse.from_json(json_object: item)
1092
- end
1093
- end
1094
- end
1095
-
1096
- # Get a user's streak data.
1097
- #
1098
- # @param id [String] ID of the user.
1099
- # @param history_periods [Integer] The number of past streak periods to include in the streakHistory field of the
1100
- # response.
1101
- # @param request_options [TrophyApiClient::RequestOptions]
1102
- # @return [TrophyApiClient::StreakResponse]
1103
- # @example
1104
- # api = TrophyApiClient::Client.new(
1105
- # base_url: "https://api.example.com",
1106
- # environment: TrophyApiClient::Environment::PRODUCTION,
1107
- # api_key: "YOUR_API_KEY"
1108
- # )
1109
- # api.users.streak(id: "userId", history_periods: 1)
1110
- def streak(id:, history_periods: nil, request_options: nil)
1111
- Async do
1112
- response = @request_client.conn.get do |req|
1113
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1114
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1115
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1116
- req.headers = {
1117
- **(req.headers || {}),
1118
- **@request_client.get_headers,
1119
- **(request_options&.additional_headers || {})
1120
- }.compact
1121
- req.params = {
1122
- **(request_options&.additional_query_parameters || {}),
1123
- "historyPeriods": history_periods
1124
- }.compact
1125
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1126
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1127
- end
1128
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/streak"
1129
- end
1130
- TrophyApiClient::StreakResponse.from_json(json_object: response.body)
1131
- end
1132
- end
1133
-
1134
- # Get a user's points for a specific points system.
1135
- #
1136
- # @param id [String] ID of the user.
1137
- # @param key [String] Key of the points system.
1138
- # @param awards [Integer] The number of recent point awards to return.
1139
- # @param request_options [TrophyApiClient::RequestOptions]
1140
- # @return [TrophyApiClient::GetUserPointsResponse]
1141
- # @example
1142
- # api = TrophyApiClient::Client.new(
1143
- # base_url: "https://api.example.com",
1144
- # environment: TrophyApiClient::Environment::PRODUCTION,
1145
- # api_key: "YOUR_API_KEY"
1146
- # )
1147
- # api.users.points(
1148
- # id: "userId",
1149
- # key: "points-system-key",
1150
- # awards: 1
1151
- # )
1152
- def points(id:, key:, awards: nil, request_options: nil)
1153
- Async do
1154
- response = @request_client.conn.get do |req|
1155
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1156
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1157
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1158
- req.headers = {
1159
- **(req.headers || {}),
1160
- **@request_client.get_headers,
1161
- **(request_options&.additional_headers || {})
1162
- }.compact
1163
- req.params = { **(request_options&.additional_query_parameters || {}), "awards": awards }.compact
1164
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1165
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1166
- end
1167
- req.url "#{@request_client.get_url(environment: api,
1168
- request_options: request_options)}/users/#{id}/points/#{key}"
1169
- end
1170
- TrophyApiClient::GetUserPointsResponse.from_json(json_object: response.body)
1171
- end
1172
- end
1173
-
1174
- # Get active points boosts for a user in a specific points system. Returns both
1175
- # global boosts the user is eligible for and user-specific boosts.
1176
- #
1177
- # @param id [String] ID of the user.
1178
- # @param key [String] Key of the points system.
1179
- # @param request_options [TrophyApiClient::RequestOptions]
1180
- # @return [Array<TrophyApiClient::PointsBoost>]
1181
- # @example
1182
- # api = TrophyApiClient::Client.new(
1183
- # base_url: "https://api.example.com",
1184
- # environment: TrophyApiClient::Environment::PRODUCTION,
1185
- # api_key: "YOUR_API_KEY"
1186
- # )
1187
- # api.users.points_boosts(id: "userId", key: "points-system-key")
1188
- def points_boosts(id:, key:, request_options: nil)
1189
- Async do
1190
- response = @request_client.conn.get do |req|
1191
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1192
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1193
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1194
- req.headers = {
1195
- **(req.headers || {}),
1196
- **@request_client.get_headers,
1197
- **(request_options&.additional_headers || {})
1198
- }.compact
1199
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
1200
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
1201
- end
1202
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1203
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1204
- end
1205
- req.url "#{@request_client.get_url(environment: api,
1206
- request_options: request_options)}/users/#{id}/points/#{key}/boosts"
1207
- end
1208
- parsed_json = JSON.parse(response.body)
1209
- parsed_json&.map do |item|
1210
- item = item.to_json
1211
- TrophyApiClient::PointsBoost.from_json(json_object: item)
1212
- end
1213
- end
1214
- end
1215
-
1216
- # Get a summary of points awards over time for a user for a specific points
1217
- # system.
1218
- #
1219
- # @param id [String] ID of the user.
1220
- # @param key [String] Key of the points system.
1221
- # @param aggregation [TrophyApiClient::Users::UsersPointsEventSummaryRequestAggregation] The time period over which to aggregate the event data.
1222
- # @param start_date [String] The start date for the data range in YYYY-MM-DD format. The startDate must be
1223
- # before the endDate, and the date range must not exceed 400 days.
1224
- # @param end_date [String] The end date for the data range in YYYY-MM-DD format. The endDate must be after
1225
- # the startDate, and the date range must not exceed 400 days.
1226
- # @param request_options [TrophyApiClient::RequestOptions]
1227
- # @return [Array<TrophyApiClient::Users::UsersPointsEventSummaryResponseItem>]
1228
- # @example
1229
- # api = TrophyApiClient::Client.new(
1230
- # base_url: "https://api.example.com",
1231
- # environment: TrophyApiClient::Environment::PRODUCTION,
1232
- # api_key: "YOUR_API_KEY"
1233
- # )
1234
- # api.users.points_event_summary(
1235
- # id: "userId",
1236
- # key: "points-system-key",
1237
- # aggregation: DAILY,
1238
- # start_date: "2024-01-01",
1239
- # end_date: "2024-01-31"
1240
- # )
1241
- def points_event_summary(id:, key:, aggregation:, start_date:, end_date:, request_options: nil)
1242
- Async do
1243
- response = @request_client.conn.get do |req|
1244
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1245
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1246
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1247
- req.headers = {
1248
- **(req.headers || {}),
1249
- **@request_client.get_headers,
1250
- **(request_options&.additional_headers || {})
1251
- }.compact
1252
- req.params = {
1253
- **(request_options&.additional_query_parameters || {}),
1254
- "aggregation": aggregation,
1255
- "startDate": start_date,
1256
- "endDate": end_date
1257
- }.compact
1258
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1259
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1260
- end
1261
- req.url "#{@request_client.get_url(environment: api,
1262
- request_options: request_options)}/users/#{id}/points/#{key}/event-summary"
1263
- end
1264
- parsed_json = JSON.parse(response.body)
1265
- parsed_json&.map do |item|
1266
- item = item.to_json
1267
- TrophyApiClient::Users::UsersPointsEventSummaryResponseItem.from_json(json_object: item)
1268
- end
1269
- end
1270
- end
1271
-
1272
- # Get a user's rank, value, and daily ranking history for a specific leaderboard.
1273
- #
1274
- # @param id [String] The user's ID in your database.
1275
- # @param key [String] Unique key of the leaderboard as set when created.
1276
- # @param run [String] Specific run date in YYYY-MM-DD format. If not provided, returns the current
1277
- # run.
1278
- # @param num_events [Integer] The number of days to return in the leaderboard history for the user.
1279
- # @param request_options [TrophyApiClient::RequestOptions]
1280
- # @return [TrophyApiClient::UserLeaderboardResponseWithHistory]
1281
- # @example
1282
- # api = TrophyApiClient::Client.new(
1283
- # base_url: "https://api.example.com",
1284
- # environment: TrophyApiClient::Environment::PRODUCTION,
1285
- # api_key: "YOUR_API_KEY"
1286
- # )
1287
- # api.users.leaderboard(
1288
- # id: "user-123",
1289
- # key: "weekly-words",
1290
- # run: "2025-01-15",
1291
- # num_events: 1
1292
- # )
1293
- def leaderboard(id:, key:, run: nil, num_events: nil, request_options: nil)
1294
- Async do
1295
- response = @request_client.conn.get do |req|
1296
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1297
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1298
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1299
- req.headers = {
1300
- **(req.headers || {}),
1301
- **@request_client.get_headers,
1302
- **(request_options&.additional_headers || {})
1303
- }.compact
1304
- req.params = {
1305
- **(request_options&.additional_query_parameters || {}),
1306
- "run": run,
1307
- "numEvents": num_events
1308
- }.compact
1309
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1310
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1311
- end
1312
- req.url "#{@request_client.get_url(environment: api,
1313
- request_options: request_options)}/users/#{id}/leaderboards/#{key}"
1314
- end
1315
- TrophyApiClient::UserLeaderboardResponseWithHistory.from_json(json_object: response.body)
1316
- end
1317
- end
1318
-
1319
- # Get a user's year-in-review wrapped data.
1320
- #
1321
- # @param id [String] The user's ID in your database.
1322
- # @param year [Integer] The year to get wrapped data for. Defaults to the current year. Must be an
1323
- # integer between 1 and the current year.
1324
- # @param request_options [TrophyApiClient::RequestOptions]
1325
- # @return [TrophyApiClient::WrappedResponse]
1326
- # @example
1327
- # api = TrophyApiClient::Client.new(
1328
- # base_url: "https://api.example.com",
1329
- # environment: TrophyApiClient::Environment::PRODUCTION,
1330
- # api_key: "YOUR_API_KEY"
1331
- # )
1332
- # api.users.wrapped(id: "user-123", year: 1)
1333
- def wrapped(id:, year: nil, request_options: nil)
1334
- Async do
1335
- response = @request_client.conn.get do |req|
1336
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
1337
- req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
1338
- req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
1339
- req.headers = {
1340
- **(req.headers || {}),
1341
- **@request_client.get_headers,
1342
- **(request_options&.additional_headers || {})
1343
- }.compact
1344
- req.params = { **(request_options&.additional_query_parameters || {}), "year": year }.compact
1345
- unless request_options.nil? || request_options&.additional_body_parameters.nil?
1346
- req.body = { **(request_options&.additional_body_parameters || {}) }.compact
1347
- end
1348
- req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/users/#{id}/wrapped"
1349
- end
1350
- TrophyApiClient::WrappedResponse.from_json(json_object: response.body)
1351
- end
1352
- end
1353
- end
1354
- end