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_triggers_response"
5
+ require "json"
6
+ require_relative "../../../types/create_points_triggers_request"
7
+ require_relative "../../../types/create_points_triggers_response"
8
+ require_relative "../../../types/delete_points_triggers_response"
9
+ require_relative "../../../types/patch_points_triggers_request"
10
+ require_relative "../../../types/patch_points_triggers_response"
11
+ require_relative "../../../types/admin_points_trigger"
12
+ require "async"
13
+
14
+ module TrophyApiClient
15
+ module Admin
16
+ module Points
17
+ class TriggersClient
18
+ # @return [TrophyApiClient::RequestClient]
19
+ attr_reader :request_client
20
+
21
+ # @param request_client [TrophyApiClient::RequestClient]
22
+ # @return [TrophyApiClient::Admin::Points::TriggersClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+
27
+ # List points triggers for a system.
28
+ #
29
+ # @param system_id [String] The UUID of the points system.
30
+ # @param limit [Integer] Maximum number of results to return (1-100, default 10).
31
+ # @param skip [Integer] Number of results to skip for pagination (default 0).
32
+ # @param request_options [TrophyApiClient::RequestOptions]
33
+ # @return [TrophyApiClient::LIST_POINTS_TRIGGERS_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.triggers.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}/triggers"
65
+ end
66
+ parsed_json = JSON.parse(response.body)
67
+ parsed_json&.map do |item|
68
+ item = item.to_json
69
+ TrophyApiClient::AdminPointsTrigger.from_json(json_object: item)
70
+ end
71
+ end
72
+
73
+ # Create points triggers in bulk. Maximum 100 triggers per request.
74
+ #
75
+ # @param system_id [String] The UUID of the points system.
76
+ # @param request [TrophyApiClient::CREATE_POINTS_TRIGGERS_REQUEST]
77
+ # @param request_options [TrophyApiClient::RequestOptions]
78
+ # @return [TrophyApiClient::CreatePointsTriggersResponse]
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.triggers.create(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ type: METRIC, points: 10 }])
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}/triggers"
102
+ end
103
+ TrophyApiClient::CreatePointsTriggersResponse.from_json(json_object: response.body)
104
+ end
105
+
106
+ # Delete (archive) points triggers by ID. Maximum 100 trigger IDs per request.
107
+ #
108
+ # @param system_id [String] The UUID of the points system.
109
+ # @param ids [String] Trigger IDs to delete. Can be repeated or comma-separated.
110
+ # @param request_options [TrophyApiClient::RequestOptions]
111
+ # @return [TrophyApiClient::DeletePointsTriggersResponse]
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.triggers.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}/triggers"
135
+ end
136
+ TrophyApiClient::DeletePointsTriggersResponse.from_json(json_object: response.body)
137
+ end
138
+
139
+ # Update points triggers in bulk. Maximum 100 triggers per request. Only provided
140
+ # fields are updated; omitted fields are preserved.
141
+ #
142
+ # @param system_id [String] The UUID of the points system.
143
+ # @param request [TrophyApiClient::PATCH_POINTS_TRIGGERS_REQUEST]
144
+ # @param request_options [TrophyApiClient::RequestOptions]
145
+ # @return [TrophyApiClient::PatchPointsTriggersResponse]
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.triggers.update(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ id: "id" }])
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}/triggers"
169
+ end
170
+ TrophyApiClient::PatchPointsTriggersResponse.from_json(json_object: response.body)
171
+ end
172
+
173
+ # Get a single points trigger by ID.
174
+ #
175
+ # @param system_id [String] The UUID of the points system.
176
+ # @param id [String] The UUID of the points trigger.
177
+ # @param request_options [TrophyApiClient::RequestOptions]
178
+ # @return [TrophyApiClient::AdminPointsTrigger]
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.triggers.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}/triggers/#{id}"
204
+ end
205
+ TrophyApiClient::AdminPointsTrigger.from_json(json_object: response.body)
206
+ end
207
+ end
208
+
209
+ class AsyncTriggersClient
210
+ # @return [TrophyApiClient::AsyncRequestClient]
211
+ attr_reader :request_client
212
+
213
+ # @param request_client [TrophyApiClient::AsyncRequestClient]
214
+ # @return [TrophyApiClient::Admin::Points::AsyncTriggersClient]
215
+ def initialize(request_client:)
216
+ @request_client = request_client
217
+ end
218
+
219
+ # List points triggers for a system.
220
+ #
221
+ # @param system_id [String] The UUID of the points system.
222
+ # @param limit [Integer] Maximum number of results to return (1-100, default 10).
223
+ # @param skip [Integer] Number of results to skip for pagination (default 0).
224
+ # @param request_options [TrophyApiClient::RequestOptions]
225
+ # @return [TrophyApiClient::LIST_POINTS_TRIGGERS_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.triggers.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}/triggers"
258
+ end
259
+ parsed_json = JSON.parse(response.body)
260
+ parsed_json&.map do |item|
261
+ item = item.to_json
262
+ TrophyApiClient::AdminPointsTrigger.from_json(json_object: item)
263
+ end
264
+ end
265
+ end
266
+
267
+ # Create points triggers in bulk. Maximum 100 triggers per request.
268
+ #
269
+ # @param system_id [String] The UUID of the points system.
270
+ # @param request [TrophyApiClient::CREATE_POINTS_TRIGGERS_REQUEST]
271
+ # @param request_options [TrophyApiClient::RequestOptions]
272
+ # @return [TrophyApiClient::CreatePointsTriggersResponse]
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.triggers.create(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ type: METRIC, points: 10 }])
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}/triggers"
297
+ end
298
+ TrophyApiClient::CreatePointsTriggersResponse.from_json(json_object: response.body)
299
+ end
300
+ end
301
+
302
+ # Delete (archive) points triggers by ID. Maximum 100 trigger IDs per request.
303
+ #
304
+ # @param system_id [String] The UUID of the points system.
305
+ # @param ids [String] Trigger IDs to delete. Can be repeated or comma-separated.
306
+ # @param request_options [TrophyApiClient::RequestOptions]
307
+ # @return [TrophyApiClient::DeletePointsTriggersResponse]
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.triggers.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}/triggers"
332
+ end
333
+ TrophyApiClient::DeletePointsTriggersResponse.from_json(json_object: response.body)
334
+ end
335
+ end
336
+
337
+ # Update points triggers in bulk. Maximum 100 triggers per request. Only provided
338
+ # fields are updated; omitted fields are preserved.
339
+ #
340
+ # @param system_id [String] The UUID of the points system.
341
+ # @param request [TrophyApiClient::PATCH_POINTS_TRIGGERS_REQUEST]
342
+ # @param request_options [TrophyApiClient::RequestOptions]
343
+ # @return [TrophyApiClient::PatchPointsTriggersResponse]
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.triggers.update(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ id: "id" }])
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}/triggers"
368
+ end
369
+ TrophyApiClient::PatchPointsTriggersResponse.from_json(json_object: response.body)
370
+ end
371
+ end
372
+
373
+ # Get a single points trigger by ID.
374
+ #
375
+ # @param system_id [String] The UUID of the points system.
376
+ # @param id [String] The UUID of the points trigger.
377
+ # @param request_options [TrophyApiClient::RequestOptions]
378
+ # @return [TrophyApiClient::AdminPointsTrigger]
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.triggers.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}/triggers/#{id}"
405
+ end
406
+ TrophyApiClient::AdminPointsTrigger.from_json(json_object: response.body)
407
+ end
408
+ end
409
+ end
410
+ end
411
+ end
412
+ end
@@ -38,6 +38,7 @@ module TrophyApiClient
38
38
  response = @request_client.conn.post do |req|
39
39
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
40
40
  req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
41
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
41
42
  req.headers = {
42
43
  **(req.headers || {}),
43
44
  **@request_client.get_headers,
@@ -85,6 +86,7 @@ module TrophyApiClient
85
86
  response = @request_client.conn.post do |req|
86
87
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
87
88
  req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
89
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
88
90
  req.headers = {
89
91
  **(req.headers || {}),
90
92
  **@request_client.get_headers,
@@ -35,6 +35,7 @@ module TrophyApiClient
35
35
  response = @request_client.conn.post do |req|
36
36
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
37
37
  req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
38
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
38
39
  req.headers = {
39
40
  **(req.headers || {}),
40
41
  **@request_client.get_headers,
@@ -78,6 +79,7 @@ module TrophyApiClient
78
79
  response = @request_client.conn.post do |req|
79
80
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
80
81
  req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
82
+ req.headers["Tenant-ID"] = request_options.tenant_id unless request_options&.tenant_id.nil?
81
83
  req.headers = {
82
84
  **(req.headers || {}),
83
85
  **@request_client.get_headers,