trophy_api_client 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gemconfig.rb +1 -1
  3. data/lib/trophy_api_client/admin/attributes/client.rb +6 -6
  4. data/lib/trophy_api_client/admin/client.rb +14 -7
  5. data/lib/trophy_api_client/admin/leaderboards/client.rb +371 -0
  6. data/lib/trophy_api_client/admin/metrics/client.rb +6 -6
  7. data/lib/trophy_api_client/admin/points/boosts/client.rb +258 -39
  8. data/lib/trophy_api_client/admin/points/client.rb +21 -0
  9. data/lib/trophy_api_client/admin/points/levels/client.rb +402 -0
  10. data/lib/trophy_api_client/admin/points/systems/client.rb +374 -0
  11. data/lib/trophy_api_client/admin/points/triggers/client.rb +402 -0
  12. data/lib/trophy_api_client/types/admin_leaderboard.rb +171 -0
  13. data/lib/trophy_api_client/types/admin_leaderboard_rank_by.rb +10 -0
  14. data/lib/trophy_api_client/types/admin_leaderboard_run_unit.rb +10 -0
  15. data/lib/trophy_api_client/types/admin_leaderboard_status.rb +11 -0
  16. data/lib/trophy_api_client/types/{created_points_boost.rb → admin_points_boost.rb} +39 -23
  17. data/lib/trophy_api_client/types/{created_points_boost_rounding.rb → admin_points_boost_rounding.rb} +1 -1
  18. data/lib/trophy_api_client/types/{created_points_boost_status.rb → admin_points_boost_status.rb} +1 -1
  19. data/lib/trophy_api_client/types/admin_points_boost_user_attributes_item.rb +65 -0
  20. data/lib/trophy_api_client/types/admin_points_level.rb +109 -0
  21. data/lib/trophy_api_client/types/admin_points_level_badge.rb +55 -0
  22. data/lib/trophy_api_client/types/admin_points_system.rb +118 -0
  23. data/lib/trophy_api_client/types/admin_points_system_badge.rb +55 -0
  24. data/lib/trophy_api_client/types/admin_points_system_status.rb +9 -0
  25. data/lib/trophy_api_client/types/admin_points_trigger.rb +175 -0
  26. data/lib/trophy_api_client/types/admin_points_trigger_event_attributes_item.rb +66 -0
  27. data/lib/trophy_api_client/types/admin_points_trigger_status.rb +9 -0
  28. data/lib/trophy_api_client/types/admin_points_trigger_time_unit.rb +9 -0
  29. data/lib/trophy_api_client/types/admin_points_trigger_type.rb +12 -0
  30. data/lib/trophy_api_client/types/admin_points_trigger_user_attributes_item.rb +65 -0
  31. data/lib/trophy_api_client/types/create_leaderboard_request_item.rb +171 -0
  32. data/lib/trophy_api_client/types/create_leaderboard_request_item_rank_by.rb +10 -0
  33. data/lib/trophy_api_client/types/create_leaderboard_request_item_run_unit.rb +11 -0
  34. data/lib/trophy_api_client/types/create_leaderboard_request_item_status.rb +13 -0
  35. data/lib/trophy_api_client/types/create_leaderboards_request.rb +7 -0
  36. data/lib/trophy_api_client/types/create_leaderboards_response.rb +74 -0
  37. data/lib/trophy_api_client/types/create_points_boost_request_item.rb +125 -0
  38. data/lib/trophy_api_client/types/create_points_boost_request_item_rounding.rb +10 -0
  39. data/lib/trophy_api_client/types/create_points_boost_request_item_user_attributes_item.rb +67 -0
  40. data/lib/trophy_api_client/types/create_points_boosts_request.rb +7 -0
  41. data/lib/trophy_api_client/types/create_points_boosts_response.rb +4 -4
  42. data/lib/trophy_api_client/types/create_points_level_request_item.rb +103 -0
  43. data/lib/trophy_api_client/types/create_points_level_request_item_badge.rb +56 -0
  44. data/lib/trophy_api_client/types/create_points_levels_request.rb +7 -0
  45. data/lib/trophy_api_client/types/create_points_levels_response.rb +74 -0
  46. data/lib/trophy_api_client/types/create_points_system_request_item.rb +140 -0
  47. data/lib/trophy_api_client/types/create_points_system_request_item_badge.rb +55 -0
  48. data/lib/trophy_api_client/types/create_points_systems_request.rb +7 -0
  49. data/lib/trophy_api_client/types/create_points_systems_response.rb +74 -0
  50. data/lib/trophy_api_client/types/create_points_trigger_request_item.rb +167 -0
  51. data/lib/trophy_api_client/types/create_points_trigger_request_item_event_attributes_item.rb +67 -0
  52. data/lib/trophy_api_client/types/create_points_trigger_request_item_status.rb +9 -0
  53. data/lib/trophy_api_client/types/create_points_trigger_request_item_time_unit.rb +9 -0
  54. data/lib/trophy_api_client/types/create_points_trigger_request_item_type.rb +12 -0
  55. data/lib/trophy_api_client/types/create_points_trigger_request_item_user_attributes_item.rb +67 -0
  56. data/lib/trophy_api_client/types/create_points_triggers_request.rb +7 -0
  57. data/lib/trophy_api_client/types/create_points_triggers_response.rb +74 -0
  58. data/lib/trophy_api_client/types/created_admin_points_system.rb +163 -0
  59. data/lib/trophy_api_client/types/delete_leaderboards_response.rb +75 -0
  60. data/lib/trophy_api_client/types/delete_points_levels_response.rb +74 -0
  61. data/lib/trophy_api_client/types/delete_points_systems_response.rb +74 -0
  62. data/lib/trophy_api_client/types/delete_points_triggers_response.rb +75 -0
  63. data/lib/trophy_api_client/types/list_leaderboards_response.rb +7 -0
  64. data/lib/trophy_api_client/types/list_points_boosts_response.rb +7 -0
  65. data/lib/trophy_api_client/types/list_points_levels_response.rb +7 -0
  66. data/lib/trophy_api_client/types/list_points_systems_response.rb +7 -0
  67. data/lib/trophy_api_client/types/list_points_triggers_response.rb +7 -0
  68. data/lib/trophy_api_client/types/patch_points_boosts_request.rb +7 -0
  69. data/lib/trophy_api_client/types/patch_points_boosts_request_item.rb +118 -0
  70. data/lib/trophy_api_client/types/patch_points_boosts_request_item_rounding.rb +10 -0
  71. data/lib/trophy_api_client/types/patch_points_boosts_request_item_user_attributes_item.rb +67 -0
  72. data/lib/trophy_api_client/types/patch_points_boosts_response.rb +74 -0
  73. data/lib/trophy_api_client/types/patch_points_levels_request.rb +7 -0
  74. data/lib/trophy_api_client/types/patch_points_levels_request_item.rb +100 -0
  75. data/lib/trophy_api_client/types/patch_points_levels_request_item_badge.rb +55 -0
  76. data/lib/trophy_api_client/types/patch_points_levels_response.rb +74 -0
  77. data/lib/trophy_api_client/types/patch_points_triggers_request.rb +7 -0
  78. data/lib/trophy_api_client/types/patch_points_triggers_request_item.rb +174 -0
  79. data/lib/trophy_api_client/types/patch_points_triggers_request_item_event_attributes_item.rb +67 -0
  80. data/lib/trophy_api_client/types/patch_points_triggers_request_item_status.rb +9 -0
  81. data/lib/trophy_api_client/types/patch_points_triggers_request_item_time_unit.rb +9 -0
  82. data/lib/trophy_api_client/types/patch_points_triggers_request_item_type.rb +13 -0
  83. data/lib/trophy_api_client/types/patch_points_triggers_request_item_user_attributes_item.rb +67 -0
  84. data/lib/trophy_api_client/types/patch_points_triggers_response.rb +74 -0
  85. data/lib/trophy_api_client/types/update_leaderboard_request_item.rb +179 -0
  86. data/lib/trophy_api_client/types/update_leaderboard_request_item_rank_by.rb +11 -0
  87. data/lib/trophy_api_client/types/update_leaderboard_request_item_run_unit.rb +9 -0
  88. data/lib/trophy_api_client/types/update_leaderboard_request_item_status.rb +12 -0
  89. data/lib/trophy_api_client/types/update_leaderboards_request.rb +7 -0
  90. data/lib/trophy_api_client/types/update_leaderboards_response.rb +75 -0
  91. data/lib/trophy_api_client/types/update_points_system_request_item.rb +102 -0
  92. data/lib/trophy_api_client/types/update_points_system_request_item_badge.rb +55 -0
  93. data/lib/trophy_api_client/types/update_points_systems_request.rb +7 -0
  94. data/lib/trophy_api_client/types/update_points_systems_response.rb +74 -0
  95. data/lib/trophy_api_client/users/client.rb +2 -2
  96. data/lib/trophy_api_client/version.rb +1 -1
  97. data/lib/types_export.rb +93 -17
  98. metadata +87 -7
  99. data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item.rb +0 -111
  100. data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item_rounding.rb +0 -16
  101. data/lib/trophy_api_client/types/notification_type.rb +0 -11
@@ -0,0 +1,374 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../../requests"
4
+ require_relative "../../../types/list_points_systems_response"
5
+ require "json"
6
+ require_relative "../../../types/create_points_systems_request"
7
+ require_relative "../../../types/create_points_systems_response"
8
+ require_relative "../../../types/delete_points_systems_response"
9
+ require_relative "../../../types/update_points_systems_request"
10
+ require_relative "../../../types/update_points_systems_response"
11
+ require_relative "../../../types/admin_points_system"
12
+ require "async"
13
+
14
+ module TrophyApiClient
15
+ module Admin
16
+ module Points
17
+ class SystemsClient
18
+ # @return [TrophyApiClient::RequestClient]
19
+ attr_reader :request_client
20
+
21
+ # @param request_client [TrophyApiClient::RequestClient]
22
+ # @return [TrophyApiClient::Admin::Points::SystemsClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+
27
+ # List points systems.
28
+ #
29
+ # @param limit [Integer] Number of records to return.
30
+ # @param skip [Integer] Number of records to skip from the start of the list.
31
+ # @param request_options [TrophyApiClient::RequestOptions]
32
+ # @return [TrophyApiClient::LIST_POINTS_SYSTEMS_RESPONSE]
33
+ # @example
34
+ # api = TrophyApiClient::Client.new(
35
+ # base_url: "https://api.example.com",
36
+ # environment: TrophyApiClient::Environment::PRODUCTION,
37
+ # api_key: "YOUR_API_KEY"
38
+ # )
39
+ # api.admin.points.systems.list(limit: 1, skip: 1)
40
+ def list(limit: nil, skip: nil, request_options: nil)
41
+ response = @request_client.conn.get do |req|
42
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
43
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
44
+ req.headers = {
45
+ **(req.headers || {}),
46
+ **@request_client.get_headers,
47
+ **(request_options&.additional_headers || {})
48
+ }.compact
49
+ req.params = {
50
+ **(request_options&.additional_query_parameters || {}),
51
+ "limit": limit,
52
+ "skip": skip
53
+ }.compact
54
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
55
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
56
+ end
57
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
58
+ end
59
+ parsed_json = JSON.parse(response.body)
60
+ parsed_json&.map do |item|
61
+ item = item.to_json
62
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: item)
63
+ end
64
+ end
65
+
66
+ # Create points systems. Optionally include sub-entities (levels, boosts,
67
+ # triggers) in each system payload to create them alongside the system.
68
+ #
69
+ # @param request [TrophyApiClient::CREATE_POINTS_SYSTEMS_REQUEST]
70
+ # @param request_options [TrophyApiClient::RequestOptions]
71
+ # @return [TrophyApiClient::CreatePointsSystemsResponse]
72
+ # @example
73
+ # api = TrophyApiClient::Client.new(
74
+ # base_url: "https://api.example.com",
75
+ # environment: TrophyApiClient::Environment::PRODUCTION,
76
+ # api_key: "YOUR_API_KEY"
77
+ # )
78
+ # api.admin.points.systems.create(request: [{ name: "XP", key: "xp", description: "Experience points", levels: [{ name: "Bronze", key: "bronze", points: 100 }, { name: "Silver", key: "silver", points: 500 }] }])
79
+ def create(request:, request_options: nil)
80
+ response = @request_client.conn.post do |req|
81
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
82
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
83
+ req.headers = {
84
+ **(req.headers || {}),
85
+ **@request_client.get_headers,
86
+ **(request_options&.additional_headers || {})
87
+ }.compact
88
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
89
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
90
+ end
91
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
92
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
93
+ end
94
+ TrophyApiClient::CreatePointsSystemsResponse.from_json(json_object: response.body)
95
+ end
96
+
97
+ # Delete (archive) points systems by ID.
98
+ #
99
+ # @param ids [String] The IDs of the points systems to delete.
100
+ # @param request_options [TrophyApiClient::RequestOptions]
101
+ # @return [TrophyApiClient::DeletePointsSystemsResponse]
102
+ # @example
103
+ # api = TrophyApiClient::Client.new(
104
+ # base_url: "https://api.example.com",
105
+ # environment: TrophyApiClient::Environment::PRODUCTION,
106
+ # api_key: "YOUR_API_KEY"
107
+ # )
108
+ # api.admin.points.systems.delete
109
+ def delete(ids: nil, request_options: nil)
110
+ response = @request_client.conn.delete do |req|
111
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
112
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
113
+ req.headers = {
114
+ **(req.headers || {}),
115
+ **@request_client.get_headers,
116
+ **(request_options&.additional_headers || {})
117
+ }.compact
118
+ req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
119
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
120
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
121
+ end
122
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
123
+ end
124
+ TrophyApiClient::DeletePointsSystemsResponse.from_json(json_object: response.body)
125
+ end
126
+
127
+ # Update points systems by ID.
128
+ #
129
+ # @param request [TrophyApiClient::UPDATE_POINTS_SYSTEMS_REQUEST]
130
+ # @param request_options [TrophyApiClient::RequestOptions]
131
+ # @return [TrophyApiClient::UpdatePointsSystemsResponse]
132
+ # @example
133
+ # api = TrophyApiClient::Client.new(
134
+ # base_url: "https://api.example.com",
135
+ # environment: TrophyApiClient::Environment::PRODUCTION,
136
+ # api_key: "YOUR_API_KEY"
137
+ # )
138
+ # api.admin.points.systems.update(request: [{ id: "550e8400-e29b-41d4-a716-446655440000", name: "New Name" }])
139
+ def update(request:, request_options: nil)
140
+ response = @request_client.conn.patch do |req|
141
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
142
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
143
+ req.headers = {
144
+ **(req.headers || {}),
145
+ **@request_client.get_headers,
146
+ **(request_options&.additional_headers || {})
147
+ }.compact
148
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
149
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
150
+ end
151
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
152
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
153
+ end
154
+ TrophyApiClient::UpdatePointsSystemsResponse.from_json(json_object: response.body)
155
+ end
156
+
157
+ # Get a points system by ID.
158
+ #
159
+ # @param id [String] The ID of the points system.
160
+ # @param request_options [TrophyApiClient::RequestOptions]
161
+ # @return [TrophyApiClient::AdminPointsSystem]
162
+ # @example
163
+ # api = TrophyApiClient::Client.new(
164
+ # base_url: "https://api.example.com",
165
+ # environment: TrophyApiClient::Environment::PRODUCTION,
166
+ # api_key: "YOUR_API_KEY"
167
+ # )
168
+ # api.admin.points.systems.get(id: "550e8400-e29b-41d4-a716-446655440000")
169
+ def get(id:, request_options: nil)
170
+ response = @request_client.conn.get do |req|
171
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
172
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
173
+ req.headers = {
174
+ **(req.headers || {}),
175
+ **@request_client.get_headers,
176
+ **(request_options&.additional_headers || {})
177
+ }.compact
178
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
179
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
180
+ end
181
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
182
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
183
+ end
184
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points/#{id}"
185
+ end
186
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: response.body)
187
+ end
188
+ end
189
+
190
+ class AsyncSystemsClient
191
+ # @return [TrophyApiClient::AsyncRequestClient]
192
+ attr_reader :request_client
193
+
194
+ # @param request_client [TrophyApiClient::AsyncRequestClient]
195
+ # @return [TrophyApiClient::Admin::Points::AsyncSystemsClient]
196
+ def initialize(request_client:)
197
+ @request_client = request_client
198
+ end
199
+
200
+ # List points systems.
201
+ #
202
+ # @param limit [Integer] Number of records to return.
203
+ # @param skip [Integer] Number of records to skip from the start of the list.
204
+ # @param request_options [TrophyApiClient::RequestOptions]
205
+ # @return [TrophyApiClient::LIST_POINTS_SYSTEMS_RESPONSE]
206
+ # @example
207
+ # api = TrophyApiClient::Client.new(
208
+ # base_url: "https://api.example.com",
209
+ # environment: TrophyApiClient::Environment::PRODUCTION,
210
+ # api_key: "YOUR_API_KEY"
211
+ # )
212
+ # api.admin.points.systems.list(limit: 1, skip: 1)
213
+ def list(limit: nil, skip: nil, request_options: nil)
214
+ Async do
215
+ response = @request_client.conn.get do |req|
216
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
217
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
218
+ req.headers = {
219
+ **(req.headers || {}),
220
+ **@request_client.get_headers,
221
+ **(request_options&.additional_headers || {})
222
+ }.compact
223
+ req.params = {
224
+ **(request_options&.additional_query_parameters || {}),
225
+ "limit": limit,
226
+ "skip": skip
227
+ }.compact
228
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
229
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
230
+ end
231
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
232
+ end
233
+ parsed_json = JSON.parse(response.body)
234
+ parsed_json&.map do |item|
235
+ item = item.to_json
236
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: item)
237
+ end
238
+ end
239
+ end
240
+
241
+ # Create points systems. Optionally include sub-entities (levels, boosts,
242
+ # triggers) in each system payload to create them alongside the system.
243
+ #
244
+ # @param request [TrophyApiClient::CREATE_POINTS_SYSTEMS_REQUEST]
245
+ # @param request_options [TrophyApiClient::RequestOptions]
246
+ # @return [TrophyApiClient::CreatePointsSystemsResponse]
247
+ # @example
248
+ # api = TrophyApiClient::Client.new(
249
+ # base_url: "https://api.example.com",
250
+ # environment: TrophyApiClient::Environment::PRODUCTION,
251
+ # api_key: "YOUR_API_KEY"
252
+ # )
253
+ # api.admin.points.systems.create(request: [{ name: "XP", key: "xp", description: "Experience points", levels: [{ name: "Bronze", key: "bronze", points: 100 }, { name: "Silver", key: "silver", points: 500 }] }])
254
+ def create(request:, request_options: nil)
255
+ Async do
256
+ response = @request_client.conn.post do |req|
257
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
258
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
259
+ req.headers = {
260
+ **(req.headers || {}),
261
+ **@request_client.get_headers,
262
+ **(request_options&.additional_headers || {})
263
+ }.compact
264
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
265
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
266
+ end
267
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
268
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
269
+ end
270
+ TrophyApiClient::CreatePointsSystemsResponse.from_json(json_object: response.body)
271
+ end
272
+ end
273
+
274
+ # Delete (archive) points systems by ID.
275
+ #
276
+ # @param ids [String] The IDs of the points systems to delete.
277
+ # @param request_options [TrophyApiClient::RequestOptions]
278
+ # @return [TrophyApiClient::DeletePointsSystemsResponse]
279
+ # @example
280
+ # api = TrophyApiClient::Client.new(
281
+ # base_url: "https://api.example.com",
282
+ # environment: TrophyApiClient::Environment::PRODUCTION,
283
+ # api_key: "YOUR_API_KEY"
284
+ # )
285
+ # api.admin.points.systems.delete
286
+ def delete(ids: nil, request_options: nil)
287
+ Async do
288
+ response = @request_client.conn.delete do |req|
289
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
290
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
291
+ req.headers = {
292
+ **(req.headers || {}),
293
+ **@request_client.get_headers,
294
+ **(request_options&.additional_headers || {})
295
+ }.compact
296
+ req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
297
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
298
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
299
+ end
300
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
301
+ end
302
+ TrophyApiClient::DeletePointsSystemsResponse.from_json(json_object: response.body)
303
+ end
304
+ end
305
+
306
+ # Update points systems by ID.
307
+ #
308
+ # @param request [TrophyApiClient::UPDATE_POINTS_SYSTEMS_REQUEST]
309
+ # @param request_options [TrophyApiClient::RequestOptions]
310
+ # @return [TrophyApiClient::UpdatePointsSystemsResponse]
311
+ # @example
312
+ # api = TrophyApiClient::Client.new(
313
+ # base_url: "https://api.example.com",
314
+ # environment: TrophyApiClient::Environment::PRODUCTION,
315
+ # api_key: "YOUR_API_KEY"
316
+ # )
317
+ # api.admin.points.systems.update(request: [{ id: "550e8400-e29b-41d4-a716-446655440000", name: "New Name" }])
318
+ def update(request:, request_options: nil)
319
+ Async do
320
+ response = @request_client.conn.patch do |req|
321
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
322
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
323
+ req.headers = {
324
+ **(req.headers || {}),
325
+ **@request_client.get_headers,
326
+ **(request_options&.additional_headers || {})
327
+ }.compact
328
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
329
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
330
+ end
331
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
332
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
333
+ end
334
+ TrophyApiClient::UpdatePointsSystemsResponse.from_json(json_object: response.body)
335
+ end
336
+ end
337
+
338
+ # Get a points system by ID.
339
+ #
340
+ # @param id [String] The ID of the points system.
341
+ # @param request_options [TrophyApiClient::RequestOptions]
342
+ # @return [TrophyApiClient::AdminPointsSystem]
343
+ # @example
344
+ # api = TrophyApiClient::Client.new(
345
+ # base_url: "https://api.example.com",
346
+ # environment: TrophyApiClient::Environment::PRODUCTION,
347
+ # api_key: "YOUR_API_KEY"
348
+ # )
349
+ # api.admin.points.systems.get(id: "550e8400-e29b-41d4-a716-446655440000")
350
+ def get(id:, request_options: nil)
351
+ Async do
352
+ response = @request_client.conn.get do |req|
353
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
354
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
355
+ req.headers = {
356
+ **(req.headers || {}),
357
+ **@request_client.get_headers,
358
+ **(request_options&.additional_headers || {})
359
+ }.compact
360
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
361
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
362
+ end
363
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
364
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
365
+ end
366
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points/#{id}"
367
+ end
368
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: response.body)
369
+ end
370
+ end
371
+ end
372
+ end
373
+ end
374
+ end