trophy_api_client 1.7.0 → 1.9.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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gemconfig.rb +1 -1
  3. data/lib/requests.rb +34 -8
  4. data/lib/trophy_api_client/achievements/client.rb +4 -0
  5. data/lib/trophy_api_client/admin/attributes/client.rb +10 -0
  6. data/lib/trophy_api_client/admin/client.rb +7 -0
  7. data/lib/trophy_api_client/admin/leaderboards/client.rb +10 -0
  8. data/lib/trophy_api_client/admin/metrics/client.rb +10 -0
  9. data/lib/trophy_api_client/admin/points/boosts/client.rb +268 -39
  10. data/lib/trophy_api_client/admin/points/client.rb +21 -0
  11. data/lib/trophy_api_client/admin/points/levels/client.rb +412 -0
  12. data/lib/trophy_api_client/admin/points/systems/client.rb +384 -0
  13. data/lib/trophy_api_client/admin/points/triggers/client.rb +412 -0
  14. data/lib/trophy_api_client/admin/streaks/client.rb +2 -0
  15. data/lib/trophy_api_client/admin/streaks/freezes/client.rb +2 -0
  16. data/lib/trophy_api_client/admin/tenants/client.rb +376 -0
  17. data/lib/trophy_api_client/leaderboards/client.rb +4 -0
  18. data/lib/trophy_api_client/metrics/client.rb +2 -0
  19. data/lib/trophy_api_client/points/client.rb +10 -0
  20. data/lib/trophy_api_client/streaks/client.rb +4 -0
  21. data/lib/trophy_api_client/types/{created_points_boost.rb → admin_points_boost.rb} +39 -23
  22. data/lib/trophy_api_client/types/{created_points_boost_rounding.rb → admin_points_boost_rounding.rb} +1 -1
  23. data/lib/trophy_api_client/types/{created_points_boost_status.rb → admin_points_boost_status.rb} +1 -1
  24. data/lib/trophy_api_client/types/admin_points_boost_user_attributes_item.rb +65 -0
  25. data/lib/trophy_api_client/types/admin_points_level.rb +109 -0
  26. data/lib/trophy_api_client/types/admin_points_level_badge.rb +55 -0
  27. data/lib/trophy_api_client/types/admin_points_system.rb +118 -0
  28. data/lib/trophy_api_client/types/admin_points_system_badge.rb +55 -0
  29. data/lib/trophy_api_client/types/admin_points_system_status.rb +9 -0
  30. data/lib/trophy_api_client/types/admin_points_trigger.rb +175 -0
  31. data/lib/trophy_api_client/types/admin_points_trigger_event_attributes_item.rb +66 -0
  32. data/lib/trophy_api_client/types/admin_points_trigger_status.rb +9 -0
  33. data/lib/trophy_api_client/types/admin_points_trigger_time_unit.rb +9 -0
  34. data/lib/trophy_api_client/types/admin_points_trigger_type.rb +12 -0
  35. data/lib/trophy_api_client/types/admin_points_trigger_user_attributes_item.rb +65 -0
  36. data/lib/trophy_api_client/types/admin_tenant.rb +103 -0
  37. data/lib/trophy_api_client/types/admin_tenant_status.rb +9 -0
  38. data/lib/trophy_api_client/types/create_points_boost_request_item.rb +125 -0
  39. data/lib/trophy_api_client/types/create_points_boost_request_item_rounding.rb +10 -0
  40. data/lib/trophy_api_client/types/create_points_boost_request_item_user_attributes_item.rb +67 -0
  41. data/lib/trophy_api_client/types/create_points_boosts_request.rb +7 -0
  42. data/lib/trophy_api_client/types/create_points_boosts_response.rb +4 -4
  43. data/lib/trophy_api_client/types/create_points_level_request_item.rb +103 -0
  44. data/lib/trophy_api_client/types/create_points_level_request_item_badge.rb +56 -0
  45. data/lib/trophy_api_client/types/create_points_levels_request.rb +7 -0
  46. data/lib/trophy_api_client/types/create_points_levels_response.rb +74 -0
  47. data/lib/trophy_api_client/types/create_points_system_request_item.rb +140 -0
  48. data/lib/trophy_api_client/types/create_points_system_request_item_badge.rb +55 -0
  49. data/lib/trophy_api_client/types/create_points_systems_request.rb +7 -0
  50. data/lib/trophy_api_client/types/create_points_systems_response.rb +74 -0
  51. data/lib/trophy_api_client/types/create_points_trigger_request_item.rb +167 -0
  52. data/lib/trophy_api_client/types/create_points_trigger_request_item_event_attributes_item.rb +67 -0
  53. data/lib/trophy_api_client/types/create_points_trigger_request_item_status.rb +9 -0
  54. data/lib/trophy_api_client/types/create_points_trigger_request_item_time_unit.rb +9 -0
  55. data/lib/trophy_api_client/types/create_points_trigger_request_item_type.rb +12 -0
  56. data/lib/trophy_api_client/types/create_points_trigger_request_item_user_attributes_item.rb +67 -0
  57. data/lib/trophy_api_client/types/create_points_triggers_request.rb +7 -0
  58. data/lib/trophy_api_client/types/create_points_triggers_response.rb +74 -0
  59. data/lib/trophy_api_client/types/create_tenant_request_item.rb +66 -0
  60. data/lib/trophy_api_client/types/create_tenants_request.rb +7 -0
  61. data/lib/trophy_api_client/types/create_tenants_response.rb +74 -0
  62. data/lib/trophy_api_client/types/created_admin_points_system.rb +163 -0
  63. data/lib/trophy_api_client/types/delete_points_levels_response.rb +74 -0
  64. data/lib/trophy_api_client/types/delete_points_systems_response.rb +74 -0
  65. data/lib/trophy_api_client/types/delete_points_triggers_response.rb +75 -0
  66. data/lib/trophy_api_client/types/delete_tenants_response.rb +74 -0
  67. data/lib/trophy_api_client/types/list_points_boosts_response.rb +7 -0
  68. data/lib/trophy_api_client/types/list_points_levels_response.rb +7 -0
  69. data/lib/trophy_api_client/types/list_points_systems_response.rb +7 -0
  70. data/lib/trophy_api_client/types/list_points_triggers_response.rb +7 -0
  71. data/lib/trophy_api_client/types/list_tenants_response.rb +7 -0
  72. data/lib/trophy_api_client/types/patch_points_boosts_request.rb +7 -0
  73. data/lib/trophy_api_client/types/patch_points_boosts_request_item.rb +118 -0
  74. data/lib/trophy_api_client/types/patch_points_boosts_request_item_rounding.rb +10 -0
  75. data/lib/trophy_api_client/types/patch_points_boosts_request_item_user_attributes_item.rb +67 -0
  76. data/lib/trophy_api_client/types/patch_points_boosts_response.rb +74 -0
  77. data/lib/trophy_api_client/types/patch_points_levels_request.rb +7 -0
  78. data/lib/trophy_api_client/types/patch_points_levels_request_item.rb +100 -0
  79. data/lib/trophy_api_client/types/patch_points_levels_request_item_badge.rb +55 -0
  80. data/lib/trophy_api_client/types/patch_points_levels_response.rb +74 -0
  81. data/lib/trophy_api_client/types/patch_points_triggers_request.rb +7 -0
  82. data/lib/trophy_api_client/types/patch_points_triggers_request_item.rb +174 -0
  83. data/lib/trophy_api_client/types/patch_points_triggers_request_item_event_attributes_item.rb +67 -0
  84. data/lib/trophy_api_client/types/patch_points_triggers_request_item_status.rb +9 -0
  85. data/lib/trophy_api_client/types/patch_points_triggers_request_item_time_unit.rb +9 -0
  86. data/lib/trophy_api_client/types/patch_points_triggers_request_item_type.rb +13 -0
  87. data/lib/trophy_api_client/types/patch_points_triggers_request_item_user_attributes_item.rb +67 -0
  88. data/lib/trophy_api_client/types/patch_points_triggers_response.rb +74 -0
  89. data/lib/trophy_api_client/types/update_points_system_request_item.rb +102 -0
  90. data/lib/trophy_api_client/types/update_points_system_request_item_badge.rb +55 -0
  91. data/lib/trophy_api_client/types/update_points_systems_request.rb +7 -0
  92. data/lib/trophy_api_client/types/update_points_systems_response.rb +74 -0
  93. data/lib/trophy_api_client/types/update_tenant_request_item.rb +75 -0
  94. data/lib/trophy_api_client/types/update_tenants_request.rb +7 -0
  95. data/lib/trophy_api_client/types/update_tenants_response.rb +74 -0
  96. data/lib/trophy_api_client/users/client.rb +32 -0
  97. data/lib/trophy_api_client/version.rb +1 -1
  98. data/lib/trophy_api_client.rb +12 -4
  99. data/lib/types_export.rb +74 -5
  100. metadata +80 -7
  101. data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item.rb +0 -111
  102. data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item_rounding.rb +0 -16
@@ -0,0 +1,412 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../../requests"
4
+ require_relative "../../../types/list_points_levels_response"
5
+ require "json"
6
+ require_relative "../../../types/create_points_levels_request"
7
+ require_relative "../../../types/create_points_levels_response"
8
+ require_relative "../../../types/delete_points_levels_response"
9
+ require_relative "../../../types/patch_points_levels_request"
10
+ require_relative "../../../types/patch_points_levels_response"
11
+ require_relative "../../../types/admin_points_level"
12
+ require "async"
13
+
14
+ module TrophyApiClient
15
+ module Admin
16
+ module Points
17
+ class LevelsClient
18
+ # @return [TrophyApiClient::RequestClient]
19
+ attr_reader :request_client
20
+
21
+ # @param request_client [TrophyApiClient::RequestClient]
22
+ # @return [TrophyApiClient::Admin::Points::LevelsClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+
27
+ # List points levels for a system.
28
+ #
29
+ # @param system_id [String] The UUID of the points system.
30
+ # @param limit [Integer] Number of records to return.
31
+ # @param skip [Integer] Number of records to skip from the start of the list.
32
+ # @param request_options [TrophyApiClient::RequestOptions]
33
+ # @return [TrophyApiClient::LIST_POINTS_LEVELS_RESPONSE]
34
+ # @example
35
+ # api = TrophyApiClient::Client.new(
36
+ # base_url: "https://api.example.com",
37
+ # environment: TrophyApiClient::Environment::PRODUCTION,
38
+ # api_key: "YOUR_API_KEY"
39
+ # )
40
+ # api.admin.points.levels.list(
41
+ # system_id: "550e8400-e29b-41d4-a716-446655440000",
42
+ # limit: 1,
43
+ # skip: 1
44
+ # )
45
+ def list(system_id:, limit: nil, skip: nil, request_options: nil)
46
+ response = @request_client.conn.get do |req|
47
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
48
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
49
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
50
+ req.headers = {
51
+ **(req.headers || {}),
52
+ **@request_client.get_headers,
53
+ **(request_options&.additional_headers || {})
54
+ }.compact
55
+ req.params = {
56
+ **(request_options&.additional_query_parameters || {}),
57
+ "limit": limit,
58
+ "skip": skip
59
+ }.compact
60
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
61
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
62
+ end
63
+ req.url "#{@request_client.get_url(environment: admin,
64
+ request_options: request_options)}/points/#{system_id}/levels"
65
+ end
66
+ parsed_json = JSON.parse(response.body)
67
+ parsed_json&.map do |item|
68
+ item = item.to_json
69
+ TrophyApiClient::AdminPointsLevel.from_json(json_object: item)
70
+ end
71
+ end
72
+
73
+ # Create points levels. Maximum 100 levels per request.
74
+ #
75
+ # @param system_id [String] The UUID of the points system.
76
+ # @param request [TrophyApiClient::CREATE_POINTS_LEVELS_REQUEST]
77
+ # @param request_options [TrophyApiClient::RequestOptions]
78
+ # @return [TrophyApiClient::CreatePointsLevelsResponse]
79
+ # @example
80
+ # api = TrophyApiClient::Client.new(
81
+ # base_url: "https://api.example.com",
82
+ # environment: TrophyApiClient::Environment::PRODUCTION,
83
+ # api_key: "YOUR_API_KEY"
84
+ # )
85
+ # api.admin.points.levels.create(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ name: "Bronze", key: "bronze", points: 100 }])
86
+ def create(system_id:, request:, request_options: nil)
87
+ response = @request_client.conn.post do |req|
88
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
89
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
90
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
91
+ req.headers = {
92
+ **(req.headers || {}),
93
+ **@request_client.get_headers,
94
+ **(request_options&.additional_headers || {})
95
+ }.compact
96
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
97
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
98
+ end
99
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
100
+ req.url "#{@request_client.get_url(environment: admin,
101
+ request_options: request_options)}/points/#{system_id}/levels"
102
+ end
103
+ TrophyApiClient::CreatePointsLevelsResponse.from_json(json_object: response.body)
104
+ end
105
+
106
+ # Delete multiple points levels by ID.
107
+ #
108
+ # @param system_id [String] The UUID of the points system.
109
+ # @param ids [String] Comma-separated list of level UUIDs to delete.
110
+ # @param request_options [TrophyApiClient::RequestOptions]
111
+ # @return [TrophyApiClient::DeletePointsLevelsResponse]
112
+ # @example
113
+ # api = TrophyApiClient::Client.new(
114
+ # base_url: "https://api.example.com",
115
+ # environment: TrophyApiClient::Environment::PRODUCTION,
116
+ # api_key: "YOUR_API_KEY"
117
+ # )
118
+ # api.admin.points.levels.delete
119
+ def delete(system_id:, ids: nil, request_options: nil)
120
+ response = @request_client.conn.delete do |req|
121
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
122
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
123
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
124
+ req.headers = {
125
+ **(req.headers || {}),
126
+ **@request_client.get_headers,
127
+ **(request_options&.additional_headers || {})
128
+ }.compact
129
+ req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
130
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
131
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
132
+ end
133
+ req.url "#{@request_client.get_url(environment: admin,
134
+ request_options: request_options)}/points/#{system_id}/levels"
135
+ end
136
+ TrophyApiClient::DeletePointsLevelsResponse.from_json(json_object: response.body)
137
+ end
138
+
139
+ # Update multiple points levels. Each item must include an ID. `key` cannot be
140
+ # changed.
141
+ #
142
+ # @param system_id [String] The UUID of the points system.
143
+ # @param request [TrophyApiClient::PATCH_POINTS_LEVELS_REQUEST]
144
+ # @param request_options [TrophyApiClient::RequestOptions]
145
+ # @return [TrophyApiClient::PatchPointsLevelsResponse]
146
+ # @example
147
+ # api = TrophyApiClient::Client.new(
148
+ # base_url: "https://api.example.com",
149
+ # environment: TrophyApiClient::Environment::PRODUCTION,
150
+ # api_key: "YOUR_API_KEY"
151
+ # )
152
+ # api.admin.points.levels.update(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ id: "550e8400-e29b-41d4-a716-446655440000" }])
153
+ def update(system_id:, request:, request_options: nil)
154
+ response = @request_client.conn.patch do |req|
155
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
156
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
157
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
158
+ req.headers = {
159
+ **(req.headers || {}),
160
+ **@request_client.get_headers,
161
+ **(request_options&.additional_headers || {})
162
+ }.compact
163
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
164
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
165
+ end
166
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
167
+ req.url "#{@request_client.get_url(environment: admin,
168
+ request_options: request_options)}/points/#{system_id}/levels"
169
+ end
170
+ TrophyApiClient::PatchPointsLevelsResponse.from_json(json_object: response.body)
171
+ end
172
+
173
+ # Get a single points level by ID.
174
+ #
175
+ # @param system_id [String] The UUID of the points system.
176
+ # @param id [String] The UUID of the points level.
177
+ # @param request_options [TrophyApiClient::RequestOptions]
178
+ # @return [TrophyApiClient::AdminPointsLevel]
179
+ # @example
180
+ # api = TrophyApiClient::Client.new(
181
+ # base_url: "https://api.example.com",
182
+ # environment: TrophyApiClient::Environment::PRODUCTION,
183
+ # api_key: "YOUR_API_KEY"
184
+ # )
185
+ # api.admin.points.levels.get(system_id: "550e8400-e29b-41d4-a716-446655440000", id: "660f9500-f30c-42e5-b827-557766550001")
186
+ def get(system_id:, id:, request_options: nil)
187
+ response = @request_client.conn.get do |req|
188
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
189
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
190
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
191
+ req.headers = {
192
+ **(req.headers || {}),
193
+ **@request_client.get_headers,
194
+ **(request_options&.additional_headers || {})
195
+ }.compact
196
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
197
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
198
+ end
199
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
200
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
201
+ end
202
+ req.url "#{@request_client.get_url(environment: admin,
203
+ request_options: request_options)}/points/#{system_id}/levels/#{id}"
204
+ end
205
+ TrophyApiClient::AdminPointsLevel.from_json(json_object: response.body)
206
+ end
207
+ end
208
+
209
+ class AsyncLevelsClient
210
+ # @return [TrophyApiClient::AsyncRequestClient]
211
+ attr_reader :request_client
212
+
213
+ # @param request_client [TrophyApiClient::AsyncRequestClient]
214
+ # @return [TrophyApiClient::Admin::Points::AsyncLevelsClient]
215
+ def initialize(request_client:)
216
+ @request_client = request_client
217
+ end
218
+
219
+ # List points levels for a system.
220
+ #
221
+ # @param system_id [String] The UUID of the points system.
222
+ # @param limit [Integer] Number of records to return.
223
+ # @param skip [Integer] Number of records to skip from the start of the list.
224
+ # @param request_options [TrophyApiClient::RequestOptions]
225
+ # @return [TrophyApiClient::LIST_POINTS_LEVELS_RESPONSE]
226
+ # @example
227
+ # api = TrophyApiClient::Client.new(
228
+ # base_url: "https://api.example.com",
229
+ # environment: TrophyApiClient::Environment::PRODUCTION,
230
+ # api_key: "YOUR_API_KEY"
231
+ # )
232
+ # api.admin.points.levels.list(
233
+ # system_id: "550e8400-e29b-41d4-a716-446655440000",
234
+ # limit: 1,
235
+ # skip: 1
236
+ # )
237
+ def list(system_id:, limit: nil, skip: nil, request_options: nil)
238
+ Async do
239
+ response = @request_client.conn.get do |req|
240
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
241
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
242
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
243
+ req.headers = {
244
+ **(req.headers || {}),
245
+ **@request_client.get_headers,
246
+ **(request_options&.additional_headers || {})
247
+ }.compact
248
+ req.params = {
249
+ **(request_options&.additional_query_parameters || {}),
250
+ "limit": limit,
251
+ "skip": skip
252
+ }.compact
253
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
254
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
255
+ end
256
+ req.url "#{@request_client.get_url(environment: admin,
257
+ request_options: request_options)}/points/#{system_id}/levels"
258
+ end
259
+ parsed_json = JSON.parse(response.body)
260
+ parsed_json&.map do |item|
261
+ item = item.to_json
262
+ TrophyApiClient::AdminPointsLevel.from_json(json_object: item)
263
+ end
264
+ end
265
+ end
266
+
267
+ # Create points levels. Maximum 100 levels per request.
268
+ #
269
+ # @param system_id [String] The UUID of the points system.
270
+ # @param request [TrophyApiClient::CREATE_POINTS_LEVELS_REQUEST]
271
+ # @param request_options [TrophyApiClient::RequestOptions]
272
+ # @return [TrophyApiClient::CreatePointsLevelsResponse]
273
+ # @example
274
+ # api = TrophyApiClient::Client.new(
275
+ # base_url: "https://api.example.com",
276
+ # environment: TrophyApiClient::Environment::PRODUCTION,
277
+ # api_key: "YOUR_API_KEY"
278
+ # )
279
+ # api.admin.points.levels.create(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ name: "Bronze", key: "bronze", points: 100 }])
280
+ def create(system_id:, request:, request_options: nil)
281
+ Async do
282
+ response = @request_client.conn.post do |req|
283
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
284
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
285
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
286
+ req.headers = {
287
+ **(req.headers || {}),
288
+ **@request_client.get_headers,
289
+ **(request_options&.additional_headers || {})
290
+ }.compact
291
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
292
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
293
+ end
294
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
295
+ req.url "#{@request_client.get_url(environment: admin,
296
+ request_options: request_options)}/points/#{system_id}/levels"
297
+ end
298
+ TrophyApiClient::CreatePointsLevelsResponse.from_json(json_object: response.body)
299
+ end
300
+ end
301
+
302
+ # Delete multiple points levels by ID.
303
+ #
304
+ # @param system_id [String] The UUID of the points system.
305
+ # @param ids [String] Comma-separated list of level UUIDs to delete.
306
+ # @param request_options [TrophyApiClient::RequestOptions]
307
+ # @return [TrophyApiClient::DeletePointsLevelsResponse]
308
+ # @example
309
+ # api = TrophyApiClient::Client.new(
310
+ # base_url: "https://api.example.com",
311
+ # environment: TrophyApiClient::Environment::PRODUCTION,
312
+ # api_key: "YOUR_API_KEY"
313
+ # )
314
+ # api.admin.points.levels.delete
315
+ def delete(system_id:, ids: nil, request_options: nil)
316
+ Async do
317
+ response = @request_client.conn.delete do |req|
318
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
319
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
320
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
321
+ req.headers = {
322
+ **(req.headers || {}),
323
+ **@request_client.get_headers,
324
+ **(request_options&.additional_headers || {})
325
+ }.compact
326
+ req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
327
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
328
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
329
+ end
330
+ req.url "#{@request_client.get_url(environment: admin,
331
+ request_options: request_options)}/points/#{system_id}/levels"
332
+ end
333
+ TrophyApiClient::DeletePointsLevelsResponse.from_json(json_object: response.body)
334
+ end
335
+ end
336
+
337
+ # Update multiple points levels. Each item must include an ID. `key` cannot be
338
+ # changed.
339
+ #
340
+ # @param system_id [String] The UUID of the points system.
341
+ # @param request [TrophyApiClient::PATCH_POINTS_LEVELS_REQUEST]
342
+ # @param request_options [TrophyApiClient::RequestOptions]
343
+ # @return [TrophyApiClient::PatchPointsLevelsResponse]
344
+ # @example
345
+ # api = TrophyApiClient::Client.new(
346
+ # base_url: "https://api.example.com",
347
+ # environment: TrophyApiClient::Environment::PRODUCTION,
348
+ # api_key: "YOUR_API_KEY"
349
+ # )
350
+ # api.admin.points.levels.update(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ id: "550e8400-e29b-41d4-a716-446655440000" }])
351
+ def update(system_id:, request:, request_options: nil)
352
+ Async do
353
+ response = @request_client.conn.patch do |req|
354
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
355
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
356
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
357
+ req.headers = {
358
+ **(req.headers || {}),
359
+ **@request_client.get_headers,
360
+ **(request_options&.additional_headers || {})
361
+ }.compact
362
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
363
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
364
+ end
365
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
366
+ req.url "#{@request_client.get_url(environment: admin,
367
+ request_options: request_options)}/points/#{system_id}/levels"
368
+ end
369
+ TrophyApiClient::PatchPointsLevelsResponse.from_json(json_object: response.body)
370
+ end
371
+ end
372
+
373
+ # Get a single points level by ID.
374
+ #
375
+ # @param system_id [String] The UUID of the points system.
376
+ # @param id [String] The UUID of the points level.
377
+ # @param request_options [TrophyApiClient::RequestOptions]
378
+ # @return [TrophyApiClient::AdminPointsLevel]
379
+ # @example
380
+ # api = TrophyApiClient::Client.new(
381
+ # base_url: "https://api.example.com",
382
+ # environment: TrophyApiClient::Environment::PRODUCTION,
383
+ # api_key: "YOUR_API_KEY"
384
+ # )
385
+ # api.admin.points.levels.get(system_id: "550e8400-e29b-41d4-a716-446655440000", id: "660f9500-f30c-42e5-b827-557766550001")
386
+ def get(system_id:, id:, request_options: nil)
387
+ Async do
388
+ response = @request_client.conn.get do |req|
389
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
390
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
391
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
392
+ req.headers = {
393
+ **(req.headers || {}),
394
+ **@request_client.get_headers,
395
+ **(request_options&.additional_headers || {})
396
+ }.compact
397
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
398
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
399
+ end
400
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
401
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
402
+ end
403
+ req.url "#{@request_client.get_url(environment: admin,
404
+ request_options: request_options)}/points/#{system_id}/levels/#{id}"
405
+ end
406
+ TrophyApiClient::AdminPointsLevel.from_json(json_object: response.body)
407
+ end
408
+ end
409
+ end
410
+ end
411
+ end
412
+ end