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,384 @@
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["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
45
+ req.headers = {
46
+ **(req.headers || {}),
47
+ **@request_client.get_headers,
48
+ **(request_options&.additional_headers || {})
49
+ }.compact
50
+ req.params = {
51
+ **(request_options&.additional_query_parameters || {}),
52
+ "limit": limit,
53
+ "skip": skip
54
+ }.compact
55
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
56
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
57
+ end
58
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
59
+ end
60
+ parsed_json = JSON.parse(response.body)
61
+ parsed_json&.map do |item|
62
+ item = item.to_json
63
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: item)
64
+ end
65
+ end
66
+
67
+ # Create points systems. Optionally include sub-entities (levels, boosts,
68
+ # triggers) in each system payload to create them alongside the system.
69
+ #
70
+ # @param request [TrophyApiClient::CREATE_POINTS_SYSTEMS_REQUEST]
71
+ # @param request_options [TrophyApiClient::RequestOptions]
72
+ # @return [TrophyApiClient::CreatePointsSystemsResponse]
73
+ # @example
74
+ # api = TrophyApiClient::Client.new(
75
+ # base_url: "https://api.example.com",
76
+ # environment: TrophyApiClient::Environment::PRODUCTION,
77
+ # api_key: "YOUR_API_KEY"
78
+ # )
79
+ # 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 }] }])
80
+ def create(request:, request_options: nil)
81
+ response = @request_client.conn.post do |req|
82
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
83
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
84
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
85
+ req.headers = {
86
+ **(req.headers || {}),
87
+ **@request_client.get_headers,
88
+ **(request_options&.additional_headers || {})
89
+ }.compact
90
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
91
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
92
+ end
93
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
94
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
95
+ end
96
+ TrophyApiClient::CreatePointsSystemsResponse.from_json(json_object: response.body)
97
+ end
98
+
99
+ # Delete (archive) points systems by ID.
100
+ #
101
+ # @param ids [String] The IDs of the points systems to delete.
102
+ # @param request_options [TrophyApiClient::RequestOptions]
103
+ # @return [TrophyApiClient::DeletePointsSystemsResponse]
104
+ # @example
105
+ # api = TrophyApiClient::Client.new(
106
+ # base_url: "https://api.example.com",
107
+ # environment: TrophyApiClient::Environment::PRODUCTION,
108
+ # api_key: "YOUR_API_KEY"
109
+ # )
110
+ # api.admin.points.systems.delete
111
+ def delete(ids: nil, request_options: nil)
112
+ response = @request_client.conn.delete do |req|
113
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
114
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
115
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
116
+ req.headers = {
117
+ **(req.headers || {}),
118
+ **@request_client.get_headers,
119
+ **(request_options&.additional_headers || {})
120
+ }.compact
121
+ req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
122
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
123
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
124
+ end
125
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
126
+ end
127
+ TrophyApiClient::DeletePointsSystemsResponse.from_json(json_object: response.body)
128
+ end
129
+
130
+ # Update points systems by ID.
131
+ #
132
+ # @param request [TrophyApiClient::UPDATE_POINTS_SYSTEMS_REQUEST]
133
+ # @param request_options [TrophyApiClient::RequestOptions]
134
+ # @return [TrophyApiClient::UpdatePointsSystemsResponse]
135
+ # @example
136
+ # api = TrophyApiClient::Client.new(
137
+ # base_url: "https://api.example.com",
138
+ # environment: TrophyApiClient::Environment::PRODUCTION,
139
+ # api_key: "YOUR_API_KEY"
140
+ # )
141
+ # api.admin.points.systems.update(request: [{ id: "550e8400-e29b-41d4-a716-446655440000", name: "New Name" }])
142
+ def update(request:, request_options: nil)
143
+ response = @request_client.conn.patch do |req|
144
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
145
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
146
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
147
+ req.headers = {
148
+ **(req.headers || {}),
149
+ **@request_client.get_headers,
150
+ **(request_options&.additional_headers || {})
151
+ }.compact
152
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
153
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
154
+ end
155
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
156
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
157
+ end
158
+ TrophyApiClient::UpdatePointsSystemsResponse.from_json(json_object: response.body)
159
+ end
160
+
161
+ # Get a points system by ID.
162
+ #
163
+ # @param id [String] The ID of the points system.
164
+ # @param request_options [TrophyApiClient::RequestOptions]
165
+ # @return [TrophyApiClient::AdminPointsSystem]
166
+ # @example
167
+ # api = TrophyApiClient::Client.new(
168
+ # base_url: "https://api.example.com",
169
+ # environment: TrophyApiClient::Environment::PRODUCTION,
170
+ # api_key: "YOUR_API_KEY"
171
+ # )
172
+ # api.admin.points.systems.get(id: "550e8400-e29b-41d4-a716-446655440000")
173
+ def get(id:, request_options: nil)
174
+ response = @request_client.conn.get do |req|
175
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
176
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
177
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
178
+ req.headers = {
179
+ **(req.headers || {}),
180
+ **@request_client.get_headers,
181
+ **(request_options&.additional_headers || {})
182
+ }.compact
183
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
184
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
185
+ end
186
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
187
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
188
+ end
189
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points/#{id}"
190
+ end
191
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: response.body)
192
+ end
193
+ end
194
+
195
+ class AsyncSystemsClient
196
+ # @return [TrophyApiClient::AsyncRequestClient]
197
+ attr_reader :request_client
198
+
199
+ # @param request_client [TrophyApiClient::AsyncRequestClient]
200
+ # @return [TrophyApiClient::Admin::Points::AsyncSystemsClient]
201
+ def initialize(request_client:)
202
+ @request_client = request_client
203
+ end
204
+
205
+ # List points systems.
206
+ #
207
+ # @param limit [Integer] Number of records to return.
208
+ # @param skip [Integer] Number of records to skip from the start of the list.
209
+ # @param request_options [TrophyApiClient::RequestOptions]
210
+ # @return [TrophyApiClient::LIST_POINTS_SYSTEMS_RESPONSE]
211
+ # @example
212
+ # api = TrophyApiClient::Client.new(
213
+ # base_url: "https://api.example.com",
214
+ # environment: TrophyApiClient::Environment::PRODUCTION,
215
+ # api_key: "YOUR_API_KEY"
216
+ # )
217
+ # api.admin.points.systems.list(limit: 1, skip: 1)
218
+ def list(limit: nil, skip: nil, request_options: nil)
219
+ Async do
220
+ response = @request_client.conn.get do |req|
221
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
222
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
223
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
224
+ req.headers = {
225
+ **(req.headers || {}),
226
+ **@request_client.get_headers,
227
+ **(request_options&.additional_headers || {})
228
+ }.compact
229
+ req.params = {
230
+ **(request_options&.additional_query_parameters || {}),
231
+ "limit": limit,
232
+ "skip": skip
233
+ }.compact
234
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
235
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
236
+ end
237
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
238
+ end
239
+ parsed_json = JSON.parse(response.body)
240
+ parsed_json&.map do |item|
241
+ item = item.to_json
242
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: item)
243
+ end
244
+ end
245
+ end
246
+
247
+ # Create points systems. Optionally include sub-entities (levels, boosts,
248
+ # triggers) in each system payload to create them alongside the system.
249
+ #
250
+ # @param request [TrophyApiClient::CREATE_POINTS_SYSTEMS_REQUEST]
251
+ # @param request_options [TrophyApiClient::RequestOptions]
252
+ # @return [TrophyApiClient::CreatePointsSystemsResponse]
253
+ # @example
254
+ # api = TrophyApiClient::Client.new(
255
+ # base_url: "https://api.example.com",
256
+ # environment: TrophyApiClient::Environment::PRODUCTION,
257
+ # api_key: "YOUR_API_KEY"
258
+ # )
259
+ # 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 }] }])
260
+ def create(request:, request_options: nil)
261
+ Async do
262
+ response = @request_client.conn.post do |req|
263
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
264
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
265
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
266
+ req.headers = {
267
+ **(req.headers || {}),
268
+ **@request_client.get_headers,
269
+ **(request_options&.additional_headers || {})
270
+ }.compact
271
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
272
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
273
+ end
274
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
275
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
276
+ end
277
+ TrophyApiClient::CreatePointsSystemsResponse.from_json(json_object: response.body)
278
+ end
279
+ end
280
+
281
+ # Delete (archive) points systems by ID.
282
+ #
283
+ # @param ids [String] The IDs of the points systems to delete.
284
+ # @param request_options [TrophyApiClient::RequestOptions]
285
+ # @return [TrophyApiClient::DeletePointsSystemsResponse]
286
+ # @example
287
+ # api = TrophyApiClient::Client.new(
288
+ # base_url: "https://api.example.com",
289
+ # environment: TrophyApiClient::Environment::PRODUCTION,
290
+ # api_key: "YOUR_API_KEY"
291
+ # )
292
+ # api.admin.points.systems.delete
293
+ def delete(ids: nil, request_options: nil)
294
+ Async do
295
+ response = @request_client.conn.delete do |req|
296
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
297
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
298
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
299
+ req.headers = {
300
+ **(req.headers || {}),
301
+ **@request_client.get_headers,
302
+ **(request_options&.additional_headers || {})
303
+ }.compact
304
+ req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
305
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
306
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
307
+ end
308
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
309
+ end
310
+ TrophyApiClient::DeletePointsSystemsResponse.from_json(json_object: response.body)
311
+ end
312
+ end
313
+
314
+ # Update points systems by ID.
315
+ #
316
+ # @param request [TrophyApiClient::UPDATE_POINTS_SYSTEMS_REQUEST]
317
+ # @param request_options [TrophyApiClient::RequestOptions]
318
+ # @return [TrophyApiClient::UpdatePointsSystemsResponse]
319
+ # @example
320
+ # api = TrophyApiClient::Client.new(
321
+ # base_url: "https://api.example.com",
322
+ # environment: TrophyApiClient::Environment::PRODUCTION,
323
+ # api_key: "YOUR_API_KEY"
324
+ # )
325
+ # api.admin.points.systems.update(request: [{ id: "550e8400-e29b-41d4-a716-446655440000", name: "New Name" }])
326
+ def update(request:, request_options: nil)
327
+ Async do
328
+ response = @request_client.conn.patch do |req|
329
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
330
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
331
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
332
+ req.headers = {
333
+ **(req.headers || {}),
334
+ **@request_client.get_headers,
335
+ **(request_options&.additional_headers || {})
336
+ }.compact
337
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
338
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
339
+ end
340
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
341
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points"
342
+ end
343
+ TrophyApiClient::UpdatePointsSystemsResponse.from_json(json_object: response.body)
344
+ end
345
+ end
346
+
347
+ # Get a points system by ID.
348
+ #
349
+ # @param id [String] The ID of the points system.
350
+ # @param request_options [TrophyApiClient::RequestOptions]
351
+ # @return [TrophyApiClient::AdminPointsSystem]
352
+ # @example
353
+ # api = TrophyApiClient::Client.new(
354
+ # base_url: "https://api.example.com",
355
+ # environment: TrophyApiClient::Environment::PRODUCTION,
356
+ # api_key: "YOUR_API_KEY"
357
+ # )
358
+ # api.admin.points.systems.get(id: "550e8400-e29b-41d4-a716-446655440000")
359
+ def get(id:, request_options: nil)
360
+ Async do
361
+ response = @request_client.conn.get do |req|
362
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
363
+ req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
364
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
365
+ req.headers = {
366
+ **(req.headers || {}),
367
+ **@request_client.get_headers,
368
+ **(request_options&.additional_headers || {})
369
+ }.compact
370
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
371
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
372
+ end
373
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
374
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
375
+ end
376
+ req.url "#{@request_client.get_url(environment: admin, request_options: request_options)}/points/#{id}"
377
+ end
378
+ TrophyApiClient::AdminPointsSystem.from_json(json_object: response.body)
379
+ end
380
+ end
381
+ end
382
+ end
383
+ end
384
+ end