trophy_api_client 1.14.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 -83
  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 -1356
  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
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Streaks
6
+ module Pauses
7
+ module Types
8
+ class PausesDeleteRequest < Internal::Types::Model
9
+ field :ids, -> { String }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Streaks
6
+ module Settings
7
+ class Client
8
+ # @param client [Trophy::Internal::Http::RawClient]
9
+ # @param base_url [String, nil]
10
+ # @param environment [Hash[Symbol, String], nil]
11
+ #
12
+ # @return [void]
13
+ def initialize(client:, base_url: nil, environment: nil)
14
+ @client = client
15
+ @base_url = base_url
16
+ @environment = environment
17
+ end
18
+
19
+ # Get the organization's streak configuration.
20
+ #
21
+ # @param request_options [Hash]
22
+ # @param _params [Hash]
23
+ # @option request_options [String] :base_url
24
+ # @option request_options [Hash{String => Object}] :additional_headers
25
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
26
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
27
+ # @option request_options [Integer] :timeout_in_seconds
28
+ #
29
+ # @return [Trophy::Types::StreakSettings]
30
+ def get(request_options: {}, **_params)
31
+ request = Trophy::Internal::JSON::Request.new(
32
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
33
+ method: "GET",
34
+ path: "streaks/settings",
35
+ request_options: request_options
36
+ )
37
+ begin
38
+ response = @client.send(request)
39
+ rescue Net::HTTPRequestTimeout
40
+ raise Trophy::Errors::TimeoutError
41
+ end
42
+ code = response.code.to_i
43
+ if code.between?(200, 299)
44
+ Trophy::Types::StreakSettings.load(response.body)
45
+ else
46
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
47
+ raise error_class.new(response.body, code: code)
48
+ end
49
+ end
50
+
51
+ # Update the organization's streak configuration.
52
+ #
53
+ # @param request_options [Hash]
54
+ # @param params [Trophy::Admin::Streaks::Settings::Types::UpdateStreakSettingsRequest]
55
+ # @option request_options [String] :base_url
56
+ # @option request_options [Hash{String => Object}] :additional_headers
57
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
58
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
59
+ # @option request_options [Integer] :timeout_in_seconds
60
+ #
61
+ # @return [Trophy::Types::StreakSettings]
62
+ def update(request_options: {}, **params)
63
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
64
+ request = Trophy::Internal::JSON::Request.new(
65
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
66
+ method: "PATCH",
67
+ path: "streaks/settings",
68
+ body: Trophy::Admin::Streaks::Settings::Types::UpdateStreakSettingsRequest.new(params).to_h,
69
+ request_options: request_options
70
+ )
71
+ begin
72
+ response = @client.send(request)
73
+ rescue Net::HTTPRequestTimeout
74
+ raise Trophy::Errors::TimeoutError
75
+ end
76
+ code = response.code.to_i
77
+ if code.between?(200, 299)
78
+ Trophy::Types::StreakSettings.load(response.body)
79
+ else
80
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
81
+ raise error_class.new(response.body, code: code)
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Streaks
6
+ module Settings
7
+ module Types
8
+ class UpdateStreakSettingsRequest < Internal::Types::Model
9
+ field :frequency, -> { Trophy::Types::AdminStreakFrequency }, optional: true, nullable: false
10
+
11
+ field :evaluation_mode, -> { Trophy::Types::AdminStreakEvaluationMode }, optional: true, nullable: false, api_name: "evaluationMode"
12
+
13
+ field :customization_enabled, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "customizationEnabled"
14
+
15
+ field :days_off, -> { Internal::Types::Array[Integer] }, optional: true, nullable: false, api_name: "daysOff"
16
+
17
+ field :metrics, -> { Internal::Types::Array[Trophy::Types::StreakSettingsMetric] }, optional: true, nullable: false
18
+
19
+ field :freezes, -> { Trophy::Types::UpdateStreakSettingsFreezes }, optional: true, nullable: false
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Streaks
6
+ module Types
7
+ class ResetStreaksRequest < Internal::Types::Model
8
+ field :users, -> { Internal::Types::Array[Trophy::Admin::Streaks::Types::ResetStreaksRequestUsersItem] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Streaks
6
+ module Types
7
+ class ResetStreaksRequestUsersItem < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Streaks
6
+ module Types
7
+ class RestoreStreaksRequest < Internal::Types::Model
8
+ field :users, -> { Internal::Types::Array[Trophy::Admin::Streaks::Types::RestoreStreaksRequestUsersItem] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Streaks
6
+ module Types
7
+ class RestoreStreaksRequestUsersItem < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,200 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Tenants
6
+ class Client
7
+ # @param client [Trophy::Internal::Http::RawClient]
8
+ # @param base_url [String, nil]
9
+ # @param environment [Hash[Symbol, String], nil]
10
+ #
11
+ # @return [void]
12
+ def initialize(client:, base_url: nil, environment: nil)
13
+ @client = client
14
+ @base_url = base_url
15
+ @environment = environment
16
+ end
17
+
18
+ # List tenants in the current environment.
19
+ #
20
+ # @param request_options [Hash]
21
+ # @param params [Hash]
22
+ # @option request_options [String] :base_url
23
+ # @option request_options [Hash{String => Object}] :additional_headers
24
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
25
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
26
+ # @option request_options [Integer] :timeout_in_seconds
27
+ # @option params [Integer, nil] :limit
28
+ # @option params [Integer, nil] :skip
29
+ #
30
+ # @return [Array[Trophy::Types::AdminTenant]]
31
+ def list(request_options: {}, **params)
32
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
33
+ query_params = {}
34
+ query_params["limit"] = params[:limit] if params.key?(:limit)
35
+ query_params["skip"] = params[:skip] if params.key?(:skip)
36
+
37
+ request = Trophy::Internal::JSON::Request.new(
38
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
39
+ method: "GET",
40
+ path: "tenants",
41
+ query: query_params,
42
+ request_options: request_options
43
+ )
44
+ begin
45
+ response = @client.send(request)
46
+ rescue Net::HTTPRequestTimeout
47
+ raise Trophy::Errors::TimeoutError
48
+ end
49
+ code = response.code.to_i
50
+ if code.between?(200, 299)
51
+ Trophy::Types::ListTenantsResponse.load(response.body)
52
+ else
53
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
54
+ raise error_class.new(response.body, code: code)
55
+ end
56
+ end
57
+
58
+ # Create tenants.
59
+ #
60
+ # @param request_options [Hash]
61
+ # @param params [Trophy::Types::CreateTenantsRequest]
62
+ # @option request_options [String] :base_url
63
+ # @option request_options [Hash{String => Object}] :additional_headers
64
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
65
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
66
+ # @option request_options [Integer] :timeout_in_seconds
67
+ #
68
+ # @return [Trophy::Types::CreateTenantsResponse]
69
+ def create(request_options: {}, **params)
70
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
71
+ request = Trophy::Internal::JSON::Request.new(
72
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
73
+ method: "POST",
74
+ path: "tenants",
75
+ body: params,
76
+ request_options: request_options
77
+ )
78
+ begin
79
+ response = @client.send(request)
80
+ rescue Net::HTTPRequestTimeout
81
+ raise Trophy::Errors::TimeoutError
82
+ end
83
+ code = response.code.to_i
84
+ if code.between?(200, 299)
85
+ Trophy::Types::CreateTenantsResponse.load(response.body)
86
+ else
87
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
88
+ raise error_class.new(response.body, code: code)
89
+ end
90
+ end
91
+
92
+ # Delete tenants by ID.
93
+ #
94
+ # @param request_options [Hash]
95
+ # @param params [Hash]
96
+ # @option request_options [String] :base_url
97
+ # @option request_options [Hash{String => Object}] :additional_headers
98
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
99
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
100
+ # @option request_options [Integer] :timeout_in_seconds
101
+ # @option params [String, nil] :ids
102
+ #
103
+ # @return [Trophy::Types::DeleteTenantsResponse]
104
+ def delete(request_options: {}, **params)
105
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
106
+ query_params = {}
107
+ query_params["ids"] = params[:ids] if params.key?(:ids)
108
+
109
+ request = Trophy::Internal::JSON::Request.new(
110
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
111
+ method: "DELETE",
112
+ path: "tenants",
113
+ query: query_params,
114
+ request_options: request_options
115
+ )
116
+ begin
117
+ response = @client.send(request)
118
+ rescue Net::HTTPRequestTimeout
119
+ raise Trophy::Errors::TimeoutError
120
+ end
121
+ code = response.code.to_i
122
+ if code.between?(200, 299)
123
+ Trophy::Types::DeleteTenantsResponse.load(response.body)
124
+ else
125
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
126
+ raise error_class.new(response.body, code: code)
127
+ end
128
+ end
129
+
130
+ # Update tenants by ID.
131
+ #
132
+ # @param request_options [Hash]
133
+ # @param params [Trophy::Types::UpdateTenantsRequest]
134
+ # @option request_options [String] :base_url
135
+ # @option request_options [Hash{String => Object}] :additional_headers
136
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
137
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
138
+ # @option request_options [Integer] :timeout_in_seconds
139
+ #
140
+ # @return [Trophy::Types::UpdateTenantsResponse]
141
+ def update(request_options: {}, **params)
142
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
143
+ request = Trophy::Internal::JSON::Request.new(
144
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
145
+ method: "PATCH",
146
+ path: "tenants",
147
+ body: params,
148
+ request_options: request_options
149
+ )
150
+ begin
151
+ response = @client.send(request)
152
+ rescue Net::HTTPRequestTimeout
153
+ raise Trophy::Errors::TimeoutError
154
+ end
155
+ code = response.code.to_i
156
+ if code.between?(200, 299)
157
+ Trophy::Types::UpdateTenantsResponse.load(response.body)
158
+ else
159
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
160
+ raise error_class.new(response.body, code: code)
161
+ end
162
+ end
163
+
164
+ # Get a tenant by ID.
165
+ #
166
+ # @param request_options [Hash]
167
+ # @param params [Hash]
168
+ # @option request_options [String] :base_url
169
+ # @option request_options [Hash{String => Object}] :additional_headers
170
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
171
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
172
+ # @option request_options [Integer] :timeout_in_seconds
173
+ # @option params [String] :id
174
+ #
175
+ # @return [Trophy::Types::AdminTenant]
176
+ def get(request_options: {}, **params)
177
+ params = Trophy::Internal::Types::Utils.normalize_keys(params)
178
+ request = Trophy::Internal::JSON::Request.new(
179
+ base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
180
+ method: "GET",
181
+ path: "tenants/#{URI.encode_uri_component(params[:id].to_s)}",
182
+ request_options: request_options
183
+ )
184
+ begin
185
+ response = @client.send(request)
186
+ rescue Net::HTTPRequestTimeout
187
+ raise Trophy::Errors::TimeoutError
188
+ end
189
+ code = response.code.to_i
190
+ if code.between?(200, 299)
191
+ Trophy::Types::AdminTenant.load(response.body)
192
+ else
193
+ error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
194
+ raise error_class.new(response.body, code: code)
195
+ end
196
+ end
197
+ end
198
+ end
199
+ end
200
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Tenants
6
+ module Types
7
+ class TenantsDeleteRequest < Internal::Types::Model
8
+ field :ids, -> { String }, optional: true, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Admin
5
+ module Tenants
6
+ module Types
7
+ class TenantsListRequest < Internal::Types::Model
8
+ field :limit, -> { Integer }, optional: true, nullable: false
9
+
10
+ field :skip, -> { Integer }, optional: true, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ class Client
5
+ # @param api_key [String]
6
+ # @param base_url [String, nil]
7
+ # @param environment [Hash[Symbol, String], nil]
8
+ # @param sdk_version [String, nil]
9
+ # @param max_retries [Integer]
10
+ #
11
+ # @return [void]
12
+ def initialize(api_key:, base_url: nil, environment: Trophy::Environment::PRODUCTION, sdk_version: "1.26.1", max_retries: 2)
13
+ @base_url = base_url
14
+ @environment = environment
15
+
16
+ @raw_client = Trophy::Internal::Http::RawClient.new(
17
+ base_url: base_url || environment&.dig(:api),
18
+ headers: {
19
+ "X-Fern-Language" => "Ruby",
20
+ "X-API-KEY" => api_key.to_s,
21
+ "X-SDK-VERSION" => sdk_version.to_s
22
+ },
23
+ max_retries: max_retries
24
+ )
25
+ end
26
+
27
+ # @return [Trophy::Achievements::Client]
28
+ def achievements
29
+ @achievements ||= Trophy::Achievements::Client.new(client: @raw_client, base_url: @base_url, environment: @environment)
30
+ end
31
+
32
+ # @return [Trophy::Metrics::Client]
33
+ def metrics
34
+ @metrics ||= Trophy::Metrics::Client.new(client: @raw_client, base_url: @base_url, environment: @environment)
35
+ end
36
+
37
+ # @return [Trophy::Users::Client]
38
+ def users
39
+ @users ||= Trophy::Users::Client.new(client: @raw_client, base_url: @base_url, environment: @environment)
40
+ end
41
+
42
+ # @return [Trophy::Streaks::Client]
43
+ def streaks
44
+ @streaks ||= Trophy::Streaks::Client.new(client: @raw_client, base_url: @base_url, environment: @environment)
45
+ end
46
+
47
+ # @return [Trophy::Points::Client]
48
+ def points
49
+ @points ||= Trophy::Points::Client.new(client: @raw_client, base_url: @base_url, environment: @environment)
50
+ end
51
+
52
+ # @return [Trophy::Leaderboards::Client]
53
+ def leaderboards
54
+ @leaderboards ||= Trophy::Leaderboards::Client.new(client: @raw_client, base_url: @base_url, environment: @environment)
55
+ end
56
+
57
+ # @return [Trophy::Admin::Client]
58
+ def admin
59
+ @admin ||= Trophy::Admin::Client.new(client: @raw_client, base_url: @base_url, environment: @environment)
60
+ end
61
+ end
62
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module TrophyApiClient
3
+ module Trophy
4
4
  class Environment
5
5
  PRODUCTION = { api: "https://api.trophy.so/v1", admin: "https://admin.trophy.so/v1" }.freeze
6
6
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Errors
5
+ class ApiError < StandardError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Errors
5
+ class ClientError < ResponseError
6
+ end
7
+
8
+ class UnauthorizedError < ClientError
9
+ end
10
+
11
+ class ForbiddenError < ClientError
12
+ end
13
+
14
+ class NotFoundError < ClientError
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Errors
5
+ class RedirectError < ResponseError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Errors
5
+ class ResponseError < ApiError
6
+ attr_reader :code
7
+
8
+ def initialize(msg, code:)
9
+ @code = code
10
+ super(msg)
11
+ end
12
+
13
+ def inspect
14
+ "#<#{self.class.name} @code=#{code} @body=#{message}>"
15
+ end
16
+
17
+ # Returns the most appropriate error class for the given code.
18
+ #
19
+ # @return [Class]
20
+ def self.subclass_for_code(code)
21
+ case code
22
+ when 300..399
23
+ RedirectError
24
+ when 401
25
+ UnauthorizedError
26
+ when 403
27
+ ForbiddenError
28
+ when 404
29
+ NotFoundError
30
+ when 400..499
31
+ ClientError
32
+ when 503
33
+ ServiceUnavailableError
34
+ when 500..599
35
+ ServerError
36
+ else
37
+ ResponseError
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Errors
5
+ class ServerError < ResponseError
6
+ end
7
+
8
+ class ServiceUnavailableError < ApiError
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Errors
5
+ class TimeoutError < ApiError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Internal
5
+ module Errors
6
+ class ConstraintError < StandardError
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Internal
5
+ module Errors
6
+ class TypeError < StandardError
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Internal
5
+ module Http
6
+ # @api private
7
+ class BaseRequest
8
+ attr_reader :base_url, :path, :method, :headers, :query, :request_options
9
+
10
+ # @param base_url [String] The base URL for the request
11
+ # @param path [String] The path for the request
12
+ # @param method [String] The HTTP method for the request (:get, :post, etc.)
13
+ # @param headers [Hash] Additional headers for the request (optional)
14
+ # @param query [Hash] Query parameters for the request (optional)
15
+ # @param request_options [Trophy::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ def initialize(base_url:, path:, method:, headers: {}, query: {}, request_options: {})
17
+ @base_url = base_url
18
+ @path = path
19
+ @method = method
20
+ @headers = headers
21
+ @query = query
22
+ @request_options = request_options
23
+ end
24
+
25
+ # @return [Hash] The query parameters merged with additional query parameters from request options.
26
+ def encode_query
27
+ additional_query = @request_options&.dig(:additional_query_parameters) || @request_options&.dig("additional_query_parameters") || {}
28
+ @query.merge(additional_query)
29
+ end
30
+
31
+ # Child classes should implement:
32
+ # - encode_headers: Returns the encoded HTTP request headers.
33
+ # - encode_body: Returns the encoded HTTP request body.
34
+
35
+ private
36
+
37
+ # Merges additional_headers from request_options into sdk_headers, filtering out
38
+ # any keys that collide with SDK-set or client-protected headers (case-insensitive).
39
+ # @param sdk_headers [Hash] Headers set by the SDK for this request type.
40
+ # @param protected_keys [Array<String>] Additional header keys that must not be overridden.
41
+ # @return [Hash] The merged headers.
42
+ def merge_additional_headers(sdk_headers, protected_keys: [])
43
+ additional_headers = @request_options&.dig(:additional_headers) || @request_options&.dig("additional_headers") || {}
44
+ all_protected = (sdk_headers.keys + protected_keys).to_set { |k| k.to_s.downcase }
45
+ filtered = additional_headers.reject { |key, _| all_protected.include?(key.to_s.downcase) }
46
+ sdk_headers.merge(filtered)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end