trophy_api_client 1.7.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.
- checksums.yaml +4 -4
- data/lib/gemconfig.rb +1 -1
- data/lib/trophy_api_client/admin/points/boosts/client.rb +258 -39
- data/lib/trophy_api_client/admin/points/client.rb +21 -0
- data/lib/trophy_api_client/admin/points/levels/client.rb +402 -0
- data/lib/trophy_api_client/admin/points/systems/client.rb +374 -0
- data/lib/trophy_api_client/admin/points/triggers/client.rb +402 -0
- data/lib/trophy_api_client/types/{created_points_boost.rb → admin_points_boost.rb} +39 -23
- data/lib/trophy_api_client/types/{created_points_boost_rounding.rb → admin_points_boost_rounding.rb} +1 -1
- data/lib/trophy_api_client/types/{created_points_boost_status.rb → admin_points_boost_status.rb} +1 -1
- data/lib/trophy_api_client/types/admin_points_boost_user_attributes_item.rb +65 -0
- data/lib/trophy_api_client/types/admin_points_level.rb +109 -0
- data/lib/trophy_api_client/types/admin_points_level_badge.rb +55 -0
- data/lib/trophy_api_client/types/admin_points_system.rb +118 -0
- data/lib/trophy_api_client/types/admin_points_system_badge.rb +55 -0
- data/lib/trophy_api_client/types/admin_points_system_status.rb +9 -0
- data/lib/trophy_api_client/types/admin_points_trigger.rb +175 -0
- data/lib/trophy_api_client/types/admin_points_trigger_event_attributes_item.rb +66 -0
- data/lib/trophy_api_client/types/admin_points_trigger_status.rb +9 -0
- data/lib/trophy_api_client/types/admin_points_trigger_time_unit.rb +9 -0
- data/lib/trophy_api_client/types/admin_points_trigger_type.rb +12 -0
- data/lib/trophy_api_client/types/admin_points_trigger_user_attributes_item.rb +65 -0
- data/lib/trophy_api_client/types/create_points_boost_request_item.rb +125 -0
- data/lib/trophy_api_client/types/create_points_boost_request_item_rounding.rb +10 -0
- data/lib/trophy_api_client/types/create_points_boost_request_item_user_attributes_item.rb +67 -0
- data/lib/trophy_api_client/types/create_points_boosts_request.rb +7 -0
- data/lib/trophy_api_client/types/create_points_boosts_response.rb +4 -4
- data/lib/trophy_api_client/types/create_points_level_request_item.rb +103 -0
- data/lib/trophy_api_client/types/create_points_level_request_item_badge.rb +56 -0
- data/lib/trophy_api_client/types/create_points_levels_request.rb +7 -0
- data/lib/trophy_api_client/types/create_points_levels_response.rb +74 -0
- data/lib/trophy_api_client/types/create_points_system_request_item.rb +140 -0
- data/lib/trophy_api_client/types/create_points_system_request_item_badge.rb +55 -0
- data/lib/trophy_api_client/types/create_points_systems_request.rb +7 -0
- data/lib/trophy_api_client/types/create_points_systems_response.rb +74 -0
- data/lib/trophy_api_client/types/create_points_trigger_request_item.rb +167 -0
- data/lib/trophy_api_client/types/create_points_trigger_request_item_event_attributes_item.rb +67 -0
- data/lib/trophy_api_client/types/create_points_trigger_request_item_status.rb +9 -0
- data/lib/trophy_api_client/types/create_points_trigger_request_item_time_unit.rb +9 -0
- data/lib/trophy_api_client/types/create_points_trigger_request_item_type.rb +12 -0
- data/lib/trophy_api_client/types/create_points_trigger_request_item_user_attributes_item.rb +67 -0
- data/lib/trophy_api_client/types/create_points_triggers_request.rb +7 -0
- data/lib/trophy_api_client/types/create_points_triggers_response.rb +74 -0
- data/lib/trophy_api_client/types/created_admin_points_system.rb +163 -0
- data/lib/trophy_api_client/types/delete_points_levels_response.rb +74 -0
- data/lib/trophy_api_client/types/delete_points_systems_response.rb +74 -0
- data/lib/trophy_api_client/types/delete_points_triggers_response.rb +75 -0
- data/lib/trophy_api_client/types/list_points_boosts_response.rb +7 -0
- data/lib/trophy_api_client/types/list_points_levels_response.rb +7 -0
- data/lib/trophy_api_client/types/list_points_systems_response.rb +7 -0
- data/lib/trophy_api_client/types/list_points_triggers_response.rb +7 -0
- data/lib/trophy_api_client/types/patch_points_boosts_request.rb +7 -0
- data/lib/trophy_api_client/types/patch_points_boosts_request_item.rb +118 -0
- data/lib/trophy_api_client/types/patch_points_boosts_request_item_rounding.rb +10 -0
- data/lib/trophy_api_client/types/patch_points_boosts_request_item_user_attributes_item.rb +67 -0
- data/lib/trophy_api_client/types/patch_points_boosts_response.rb +74 -0
- data/lib/trophy_api_client/types/patch_points_levels_request.rb +7 -0
- data/lib/trophy_api_client/types/patch_points_levels_request_item.rb +100 -0
- data/lib/trophy_api_client/types/patch_points_levels_request_item_badge.rb +55 -0
- data/lib/trophy_api_client/types/patch_points_levels_response.rb +74 -0
- data/lib/trophy_api_client/types/patch_points_triggers_request.rb +7 -0
- data/lib/trophy_api_client/types/patch_points_triggers_request_item.rb +174 -0
- data/lib/trophy_api_client/types/patch_points_triggers_request_item_event_attributes_item.rb +67 -0
- data/lib/trophy_api_client/types/patch_points_triggers_request_item_status.rb +9 -0
- data/lib/trophy_api_client/types/patch_points_triggers_request_item_time_unit.rb +9 -0
- data/lib/trophy_api_client/types/patch_points_triggers_request_item_type.rb +13 -0
- data/lib/trophy_api_client/types/patch_points_triggers_request_item_user_attributes_item.rb +67 -0
- data/lib/trophy_api_client/types/patch_points_triggers_response.rb +74 -0
- data/lib/trophy_api_client/types/update_points_system_request_item.rb +102 -0
- data/lib/trophy_api_client/types/update_points_system_request_item_badge.rb +55 -0
- data/lib/trophy_api_client/types/update_points_systems_request.rb +7 -0
- data/lib/trophy_api_client/types/update_points_systems_response.rb +74 -0
- data/lib/trophy_api_client/version.rb +1 -1
- data/lib/types_export.rb +64 -5
- metadata +68 -6
- data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item.rb +0 -111
- data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item_rounding.rb +0 -16
|
@@ -0,0 +1,402 @@
|
|
|
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 = {
|
|
50
|
+
**(req.headers || {}),
|
|
51
|
+
**@request_client.get_headers,
|
|
52
|
+
**(request_options&.additional_headers || {})
|
|
53
|
+
}.compact
|
|
54
|
+
req.params = {
|
|
55
|
+
**(request_options&.additional_query_parameters || {}),
|
|
56
|
+
"limit": limit,
|
|
57
|
+
"skip": skip
|
|
58
|
+
}.compact
|
|
59
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
|
60
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
|
61
|
+
end
|
|
62
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
63
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
64
|
+
end
|
|
65
|
+
parsed_json = JSON.parse(response.body)
|
|
66
|
+
parsed_json&.map do |item|
|
|
67
|
+
item = item.to_json
|
|
68
|
+
TrophyApiClient::AdminPointsTrigger.from_json(json_object: item)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Create points triggers in bulk. Maximum 100 triggers per request.
|
|
73
|
+
#
|
|
74
|
+
# @param system_id [String] The UUID of the points system.
|
|
75
|
+
# @param request [TrophyApiClient::CREATE_POINTS_TRIGGERS_REQUEST]
|
|
76
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
77
|
+
# @return [TrophyApiClient::CreatePointsTriggersResponse]
|
|
78
|
+
# @example
|
|
79
|
+
# api = TrophyApiClient::Client.new(
|
|
80
|
+
# base_url: "https://api.example.com",
|
|
81
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
82
|
+
# api_key: "YOUR_API_KEY"
|
|
83
|
+
# )
|
|
84
|
+
# api.admin.points.triggers.create(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ type: METRIC, points: 10 }])
|
|
85
|
+
def create(system_id:, request:, request_options: nil)
|
|
86
|
+
response = @request_client.conn.post do |req|
|
|
87
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
88
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
89
|
+
req.headers = {
|
|
90
|
+
**(req.headers || {}),
|
|
91
|
+
**@request_client.get_headers,
|
|
92
|
+
**(request_options&.additional_headers || {})
|
|
93
|
+
}.compact
|
|
94
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
|
95
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
|
96
|
+
end
|
|
97
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
|
98
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
99
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
100
|
+
end
|
|
101
|
+
TrophyApiClient::CreatePointsTriggersResponse.from_json(json_object: response.body)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Delete (archive) points triggers by ID. Maximum 100 trigger IDs per request.
|
|
105
|
+
#
|
|
106
|
+
# @param system_id [String] The UUID of the points system.
|
|
107
|
+
# @param ids [String] Trigger IDs to delete. Can be repeated or comma-separated.
|
|
108
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
109
|
+
# @return [TrophyApiClient::DeletePointsTriggersResponse]
|
|
110
|
+
# @example
|
|
111
|
+
# api = TrophyApiClient::Client.new(
|
|
112
|
+
# base_url: "https://api.example.com",
|
|
113
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
114
|
+
# api_key: "YOUR_API_KEY"
|
|
115
|
+
# )
|
|
116
|
+
# api.admin.points.triggers.delete
|
|
117
|
+
def delete(system_id:, ids: nil, request_options: nil)
|
|
118
|
+
response = @request_client.conn.delete do |req|
|
|
119
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
120
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
121
|
+
req.headers = {
|
|
122
|
+
**(req.headers || {}),
|
|
123
|
+
**@request_client.get_headers,
|
|
124
|
+
**(request_options&.additional_headers || {})
|
|
125
|
+
}.compact
|
|
126
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
|
|
127
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
|
128
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
|
129
|
+
end
|
|
130
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
131
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
132
|
+
end
|
|
133
|
+
TrophyApiClient::DeletePointsTriggersResponse.from_json(json_object: response.body)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# Update points triggers in bulk. Maximum 100 triggers per request. Only provided
|
|
137
|
+
# fields are updated; omitted fields are preserved.
|
|
138
|
+
#
|
|
139
|
+
# @param system_id [String] The UUID of the points system.
|
|
140
|
+
# @param request [TrophyApiClient::PATCH_POINTS_TRIGGERS_REQUEST]
|
|
141
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
142
|
+
# @return [TrophyApiClient::PatchPointsTriggersResponse]
|
|
143
|
+
# @example
|
|
144
|
+
# api = TrophyApiClient::Client.new(
|
|
145
|
+
# base_url: "https://api.example.com",
|
|
146
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
147
|
+
# api_key: "YOUR_API_KEY"
|
|
148
|
+
# )
|
|
149
|
+
# api.admin.points.triggers.update(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ id: "id" }])
|
|
150
|
+
def update(system_id:, request:, request_options: nil)
|
|
151
|
+
response = @request_client.conn.patch do |req|
|
|
152
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
153
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
154
|
+
req.headers = {
|
|
155
|
+
**(req.headers || {}),
|
|
156
|
+
**@request_client.get_headers,
|
|
157
|
+
**(request_options&.additional_headers || {})
|
|
158
|
+
}.compact
|
|
159
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
|
160
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
|
161
|
+
end
|
|
162
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
|
163
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
164
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
165
|
+
end
|
|
166
|
+
TrophyApiClient::PatchPointsTriggersResponse.from_json(json_object: response.body)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Get a single points trigger by ID.
|
|
170
|
+
#
|
|
171
|
+
# @param system_id [String] The UUID of the points system.
|
|
172
|
+
# @param id [String] The UUID of the points trigger.
|
|
173
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
174
|
+
# @return [TrophyApiClient::AdminPointsTrigger]
|
|
175
|
+
# @example
|
|
176
|
+
# api = TrophyApiClient::Client.new(
|
|
177
|
+
# base_url: "https://api.example.com",
|
|
178
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
179
|
+
# api_key: "YOUR_API_KEY"
|
|
180
|
+
# )
|
|
181
|
+
# api.admin.points.triggers.get(system_id: "550e8400-e29b-41d4-a716-446655440000", id: "660f9500-f30c-42e5-b827-557766550001")
|
|
182
|
+
def get(system_id:, id:, request_options: nil)
|
|
183
|
+
response = @request_client.conn.get do |req|
|
|
184
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
185
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
186
|
+
req.headers = {
|
|
187
|
+
**(req.headers || {}),
|
|
188
|
+
**@request_client.get_headers,
|
|
189
|
+
**(request_options&.additional_headers || {})
|
|
190
|
+
}.compact
|
|
191
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
|
192
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
|
193
|
+
end
|
|
194
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
|
195
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
|
196
|
+
end
|
|
197
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
198
|
+
request_options: request_options)}/points/#{system_id}/triggers/#{id}"
|
|
199
|
+
end
|
|
200
|
+
TrophyApiClient::AdminPointsTrigger.from_json(json_object: response.body)
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
class AsyncTriggersClient
|
|
205
|
+
# @return [TrophyApiClient::AsyncRequestClient]
|
|
206
|
+
attr_reader :request_client
|
|
207
|
+
|
|
208
|
+
# @param request_client [TrophyApiClient::AsyncRequestClient]
|
|
209
|
+
# @return [TrophyApiClient::Admin::Points::AsyncTriggersClient]
|
|
210
|
+
def initialize(request_client:)
|
|
211
|
+
@request_client = request_client
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
# List points triggers for a system.
|
|
215
|
+
#
|
|
216
|
+
# @param system_id [String] The UUID of the points system.
|
|
217
|
+
# @param limit [Integer] Maximum number of results to return (1-100, default 10).
|
|
218
|
+
# @param skip [Integer] Number of results to skip for pagination (default 0).
|
|
219
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
220
|
+
# @return [TrophyApiClient::LIST_POINTS_TRIGGERS_RESPONSE]
|
|
221
|
+
# @example
|
|
222
|
+
# api = TrophyApiClient::Client.new(
|
|
223
|
+
# base_url: "https://api.example.com",
|
|
224
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
225
|
+
# api_key: "YOUR_API_KEY"
|
|
226
|
+
# )
|
|
227
|
+
# api.admin.points.triggers.list(
|
|
228
|
+
# system_id: "550e8400-e29b-41d4-a716-446655440000",
|
|
229
|
+
# limit: 1,
|
|
230
|
+
# skip: 1
|
|
231
|
+
# )
|
|
232
|
+
def list(system_id:, limit: nil, skip: nil, request_options: nil)
|
|
233
|
+
Async do
|
|
234
|
+
response = @request_client.conn.get do |req|
|
|
235
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
236
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
237
|
+
req.headers = {
|
|
238
|
+
**(req.headers || {}),
|
|
239
|
+
**@request_client.get_headers,
|
|
240
|
+
**(request_options&.additional_headers || {})
|
|
241
|
+
}.compact
|
|
242
|
+
req.params = {
|
|
243
|
+
**(request_options&.additional_query_parameters || {}),
|
|
244
|
+
"limit": limit,
|
|
245
|
+
"skip": skip
|
|
246
|
+
}.compact
|
|
247
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
|
248
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
|
249
|
+
end
|
|
250
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
251
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
252
|
+
end
|
|
253
|
+
parsed_json = JSON.parse(response.body)
|
|
254
|
+
parsed_json&.map do |item|
|
|
255
|
+
item = item.to_json
|
|
256
|
+
TrophyApiClient::AdminPointsTrigger.from_json(json_object: item)
|
|
257
|
+
end
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# Create points triggers in bulk. Maximum 100 triggers per request.
|
|
262
|
+
#
|
|
263
|
+
# @param system_id [String] The UUID of the points system.
|
|
264
|
+
# @param request [TrophyApiClient::CREATE_POINTS_TRIGGERS_REQUEST]
|
|
265
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
266
|
+
# @return [TrophyApiClient::CreatePointsTriggersResponse]
|
|
267
|
+
# @example
|
|
268
|
+
# api = TrophyApiClient::Client.new(
|
|
269
|
+
# base_url: "https://api.example.com",
|
|
270
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
271
|
+
# api_key: "YOUR_API_KEY"
|
|
272
|
+
# )
|
|
273
|
+
# api.admin.points.triggers.create(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ type: METRIC, points: 10 }])
|
|
274
|
+
def create(system_id:, request:, request_options: nil)
|
|
275
|
+
Async do
|
|
276
|
+
response = @request_client.conn.post do |req|
|
|
277
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
278
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
279
|
+
req.headers = {
|
|
280
|
+
**(req.headers || {}),
|
|
281
|
+
**@request_client.get_headers,
|
|
282
|
+
**(request_options&.additional_headers || {})
|
|
283
|
+
}.compact
|
|
284
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
|
285
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
|
286
|
+
end
|
|
287
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
|
288
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
289
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
290
|
+
end
|
|
291
|
+
TrophyApiClient::CreatePointsTriggersResponse.from_json(json_object: response.body)
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
# Delete (archive) points triggers by ID. Maximum 100 trigger IDs per request.
|
|
296
|
+
#
|
|
297
|
+
# @param system_id [String] The UUID of the points system.
|
|
298
|
+
# @param ids [String] Trigger IDs to delete. Can be repeated or comma-separated.
|
|
299
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
300
|
+
# @return [TrophyApiClient::DeletePointsTriggersResponse]
|
|
301
|
+
# @example
|
|
302
|
+
# api = TrophyApiClient::Client.new(
|
|
303
|
+
# base_url: "https://api.example.com",
|
|
304
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
305
|
+
# api_key: "YOUR_API_KEY"
|
|
306
|
+
# )
|
|
307
|
+
# api.admin.points.triggers.delete
|
|
308
|
+
def delete(system_id:, ids: nil, request_options: nil)
|
|
309
|
+
Async do
|
|
310
|
+
response = @request_client.conn.delete do |req|
|
|
311
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
312
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
313
|
+
req.headers = {
|
|
314
|
+
**(req.headers || {}),
|
|
315
|
+
**@request_client.get_headers,
|
|
316
|
+
**(request_options&.additional_headers || {})
|
|
317
|
+
}.compact
|
|
318
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "ids": ids }.compact
|
|
319
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
|
320
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
|
321
|
+
end
|
|
322
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
323
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
324
|
+
end
|
|
325
|
+
TrophyApiClient::DeletePointsTriggersResponse.from_json(json_object: response.body)
|
|
326
|
+
end
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
# Update points triggers in bulk. Maximum 100 triggers per request. Only provided
|
|
330
|
+
# fields are updated; omitted fields are preserved.
|
|
331
|
+
#
|
|
332
|
+
# @param system_id [String] The UUID of the points system.
|
|
333
|
+
# @param request [TrophyApiClient::PATCH_POINTS_TRIGGERS_REQUEST]
|
|
334
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
335
|
+
# @return [TrophyApiClient::PatchPointsTriggersResponse]
|
|
336
|
+
# @example
|
|
337
|
+
# api = TrophyApiClient::Client.new(
|
|
338
|
+
# base_url: "https://api.example.com",
|
|
339
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
340
|
+
# api_key: "YOUR_API_KEY"
|
|
341
|
+
# )
|
|
342
|
+
# api.admin.points.triggers.update(system_id: "550e8400-e29b-41d4-a716-446655440000", request: [{ id: "id" }])
|
|
343
|
+
def update(system_id:, request:, request_options: nil)
|
|
344
|
+
Async do
|
|
345
|
+
response = @request_client.conn.patch do |req|
|
|
346
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
347
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
348
|
+
req.headers = {
|
|
349
|
+
**(req.headers || {}),
|
|
350
|
+
**@request_client.get_headers,
|
|
351
|
+
**(request_options&.additional_headers || {})
|
|
352
|
+
}.compact
|
|
353
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
|
354
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
|
355
|
+
end
|
|
356
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
|
357
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
358
|
+
request_options: request_options)}/points/#{system_id}/triggers"
|
|
359
|
+
end
|
|
360
|
+
TrophyApiClient::PatchPointsTriggersResponse.from_json(json_object: response.body)
|
|
361
|
+
end
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
# Get a single points trigger by ID.
|
|
365
|
+
#
|
|
366
|
+
# @param system_id [String] The UUID of the points system.
|
|
367
|
+
# @param id [String] The UUID of the points trigger.
|
|
368
|
+
# @param request_options [TrophyApiClient::RequestOptions]
|
|
369
|
+
# @return [TrophyApiClient::AdminPointsTrigger]
|
|
370
|
+
# @example
|
|
371
|
+
# api = TrophyApiClient::Client.new(
|
|
372
|
+
# base_url: "https://api.example.com",
|
|
373
|
+
# environment: TrophyApiClient::Environment::PRODUCTION,
|
|
374
|
+
# api_key: "YOUR_API_KEY"
|
|
375
|
+
# )
|
|
376
|
+
# api.admin.points.triggers.get(system_id: "550e8400-e29b-41d4-a716-446655440000", id: "660f9500-f30c-42e5-b827-557766550001")
|
|
377
|
+
def get(system_id:, id:, request_options: nil)
|
|
378
|
+
Async do
|
|
379
|
+
response = @request_client.conn.get do |req|
|
|
380
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
381
|
+
req.headers["X-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
|
382
|
+
req.headers = {
|
|
383
|
+
**(req.headers || {}),
|
|
384
|
+
**@request_client.get_headers,
|
|
385
|
+
**(request_options&.additional_headers || {})
|
|
386
|
+
}.compact
|
|
387
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
|
388
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
|
389
|
+
end
|
|
390
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
|
391
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
|
392
|
+
end
|
|
393
|
+
req.url "#{@request_client.get_url(environment: admin,
|
|
394
|
+
request_options: request_options)}/points/#{system_id}/triggers/#{id}"
|
|
395
|
+
end
|
|
396
|
+
TrophyApiClient::AdminPointsTrigger.from_json(json_object: response.body)
|
|
397
|
+
end
|
|
398
|
+
end
|
|
399
|
+
end
|
|
400
|
+
end
|
|
401
|
+
end
|
|
402
|
+
end
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative "
|
|
4
|
-
require_relative "
|
|
3
|
+
require_relative "admin_points_boost_status"
|
|
4
|
+
require_relative "admin_points_boost_rounding"
|
|
5
|
+
require_relative "admin_points_boost_user_attributes_item"
|
|
5
6
|
require "ostruct"
|
|
6
7
|
require "json"
|
|
7
8
|
|
|
8
9
|
module TrophyApiClient
|
|
9
|
-
# A
|
|
10
|
-
class
|
|
11
|
-
# @return [String] The UUID of the
|
|
10
|
+
# A points boost as returned from admin endpoints.
|
|
11
|
+
class AdminPointsBoost
|
|
12
|
+
# @return [String] The UUID of the boost.
|
|
12
13
|
attr_reader :id
|
|
13
14
|
# @return [String] The name of the boost.
|
|
14
15
|
attr_reader :name
|
|
15
|
-
# @return [TrophyApiClient::
|
|
16
|
+
# @return [TrophyApiClient::AdminPointsBoostStatus] The status of the boost.
|
|
16
17
|
attr_reader :status
|
|
17
18
|
# @return [String] The start date (YYYY-MM-DD).
|
|
18
19
|
attr_reader :start
|
|
@@ -20,10 +21,14 @@ module TrophyApiClient
|
|
|
20
21
|
attr_reader :end_
|
|
21
22
|
# @return [Float] The points multiplier.
|
|
22
23
|
attr_reader :multiplier
|
|
23
|
-
# @return [TrophyApiClient::
|
|
24
|
+
# @return [TrophyApiClient::AdminPointsBoostRounding] How boosted points are rounded.
|
|
24
25
|
attr_reader :rounding
|
|
25
|
-
# @return [String] The customer ID of the user the boost was created for
|
|
26
|
+
# @return [String] The customer ID of the user the boost was created for, or null for
|
|
27
|
+
# global/attribute-filtered boosts.
|
|
26
28
|
attr_reader :user_id
|
|
29
|
+
# @return [Array<TrophyApiClient::AdminPointsBoostUserAttributesItem>] User attribute filters applied to the boost. Only present for non-user-specific
|
|
30
|
+
# boosts (i.e. when `userId` is null). Empty array if no filters are set.
|
|
31
|
+
attr_reader :user_attributes
|
|
27
32
|
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
|
28
33
|
attr_reader :additional_properties
|
|
29
34
|
# @return [Object]
|
|
@@ -32,18 +37,21 @@ module TrophyApiClient
|
|
|
32
37
|
|
|
33
38
|
OMIT = Object.new
|
|
34
39
|
|
|
35
|
-
# @param id [String] The UUID of the
|
|
40
|
+
# @param id [String] The UUID of the boost.
|
|
36
41
|
# @param name [String] The name of the boost.
|
|
37
|
-
# @param status [TrophyApiClient::
|
|
42
|
+
# @param status [TrophyApiClient::AdminPointsBoostStatus] The status of the boost.
|
|
38
43
|
# @param start [String] The start date (YYYY-MM-DD).
|
|
39
44
|
# @param end_ [String] The end date (YYYY-MM-DD) or null if no end date.
|
|
40
45
|
# @param multiplier [Float] The points multiplier.
|
|
41
|
-
# @param rounding [TrophyApiClient::
|
|
42
|
-
# @param user_id [String] The customer ID of the user the boost was created for
|
|
46
|
+
# @param rounding [TrophyApiClient::AdminPointsBoostRounding] How boosted points are rounded.
|
|
47
|
+
# @param user_id [String] The customer ID of the user the boost was created for, or null for
|
|
48
|
+
# global/attribute-filtered boosts.
|
|
49
|
+
# @param user_attributes [Array<TrophyApiClient::AdminPointsBoostUserAttributesItem>] User attribute filters applied to the boost. Only present for non-user-specific
|
|
50
|
+
# boosts (i.e. when `userId` is null). Empty array if no filters are set.
|
|
43
51
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
44
|
-
# @return [TrophyApiClient::
|
|
45
|
-
def initialize(id:, name:, status:, start:, multiplier:, rounding:,
|
|
46
|
-
additional_properties: nil)
|
|
52
|
+
# @return [TrophyApiClient::AdminPointsBoost]
|
|
53
|
+
def initialize(id:, name:, status:, start:, multiplier:, rounding:, end_: OMIT, user_id: OMIT,
|
|
54
|
+
user_attributes: OMIT, additional_properties: nil)
|
|
47
55
|
@id = id
|
|
48
56
|
@name = name
|
|
49
57
|
@status = status
|
|
@@ -51,7 +59,8 @@ module TrophyApiClient
|
|
|
51
59
|
@end_ = end_ if end_ != OMIT
|
|
52
60
|
@multiplier = multiplier
|
|
53
61
|
@rounding = rounding
|
|
54
|
-
@user_id = user_id
|
|
62
|
+
@user_id = user_id if user_id != OMIT
|
|
63
|
+
@user_attributes = user_attributes if user_attributes != OMIT
|
|
55
64
|
@additional_properties = additional_properties
|
|
56
65
|
@_field_set = {
|
|
57
66
|
"id": id,
|
|
@@ -61,16 +70,17 @@ module TrophyApiClient
|
|
|
61
70
|
"end": end_,
|
|
62
71
|
"multiplier": multiplier,
|
|
63
72
|
"rounding": rounding,
|
|
64
|
-
"userId": user_id
|
|
73
|
+
"userId": user_id,
|
|
74
|
+
"userAttributes": user_attributes
|
|
65
75
|
}.reject do |_k, v|
|
|
66
76
|
v == OMIT
|
|
67
77
|
end
|
|
68
78
|
end
|
|
69
79
|
|
|
70
|
-
# Deserialize a JSON object to an instance of
|
|
80
|
+
# Deserialize a JSON object to an instance of AdminPointsBoost
|
|
71
81
|
#
|
|
72
82
|
# @param json_object [String]
|
|
73
|
-
# @return [TrophyApiClient::
|
|
83
|
+
# @return [TrophyApiClient::AdminPointsBoost]
|
|
74
84
|
def self.from_json(json_object:)
|
|
75
85
|
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
76
86
|
parsed_json = JSON.parse(json_object)
|
|
@@ -82,6 +92,10 @@ module TrophyApiClient
|
|
|
82
92
|
multiplier = parsed_json["multiplier"]
|
|
83
93
|
rounding = parsed_json["rounding"]
|
|
84
94
|
user_id = parsed_json["userId"]
|
|
95
|
+
user_attributes = parsed_json["userAttributes"]&.map do |item|
|
|
96
|
+
item = item.to_json
|
|
97
|
+
TrophyApiClient::AdminPointsBoostUserAttributesItem.from_json(json_object: item)
|
|
98
|
+
end
|
|
85
99
|
new(
|
|
86
100
|
id: id,
|
|
87
101
|
name: name,
|
|
@@ -91,11 +105,12 @@ module TrophyApiClient
|
|
|
91
105
|
multiplier: multiplier,
|
|
92
106
|
rounding: rounding,
|
|
93
107
|
user_id: user_id,
|
|
108
|
+
user_attributes: user_attributes,
|
|
94
109
|
additional_properties: struct
|
|
95
110
|
)
|
|
96
111
|
end
|
|
97
112
|
|
|
98
|
-
# Serialize an instance of
|
|
113
|
+
# Serialize an instance of AdminPointsBoost to a JSON object
|
|
99
114
|
#
|
|
100
115
|
# @return [String]
|
|
101
116
|
def to_json(*_args)
|
|
@@ -111,12 +126,13 @@ module TrophyApiClient
|
|
|
111
126
|
def self.validate_raw(obj:)
|
|
112
127
|
obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
|
113
128
|
obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
|
114
|
-
obj.status.is_a?(TrophyApiClient::
|
|
129
|
+
obj.status.is_a?(TrophyApiClient::AdminPointsBoostStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
|
|
115
130
|
obj.start.is_a?(String) != false || raise("Passed value for field obj.start is not the expected type, validation failed.")
|
|
116
131
|
obj.end_&.is_a?(String) != false || raise("Passed value for field obj.end_ is not the expected type, validation failed.")
|
|
117
132
|
obj.multiplier.is_a?(Float) != false || raise("Passed value for field obj.multiplier is not the expected type, validation failed.")
|
|
118
|
-
obj.rounding.is_a?(TrophyApiClient::
|
|
119
|
-
obj.user_id
|
|
133
|
+
obj.rounding.is_a?(TrophyApiClient::AdminPointsBoostRounding) != false || raise("Passed value for field obj.rounding is not the expected type, validation failed.")
|
|
134
|
+
obj.user_id&.is_a?(String) != false || raise("Passed value for field obj.user_id is not the expected type, validation failed.")
|
|
135
|
+
obj.user_attributes&.is_a?(Array) != false || raise("Passed value for field obj.user_attributes is not the expected type, validation failed.")
|
|
120
136
|
end
|
|
121
137
|
end
|
|
122
138
|
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "ostruct"
|
|
4
|
+
require "json"
|
|
5
|
+
|
|
6
|
+
module TrophyApiClient
|
|
7
|
+
class AdminPointsBoostUserAttributesItem
|
|
8
|
+
# @return [String] The UUID of the user attribute.
|
|
9
|
+
attr_reader :attribute_id
|
|
10
|
+
# @return [String] The matched attribute value.
|
|
11
|
+
attr_reader :attribute_value
|
|
12
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
|
13
|
+
attr_reader :additional_properties
|
|
14
|
+
# @return [Object]
|
|
15
|
+
attr_reader :_field_set
|
|
16
|
+
protected :_field_set
|
|
17
|
+
|
|
18
|
+
OMIT = Object.new
|
|
19
|
+
|
|
20
|
+
# @param attribute_id [String] The UUID of the user attribute.
|
|
21
|
+
# @param attribute_value [String] The matched attribute value.
|
|
22
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
23
|
+
# @return [TrophyApiClient::AdminPointsBoostUserAttributesItem]
|
|
24
|
+
def initialize(attribute_id:, attribute_value:, additional_properties: nil)
|
|
25
|
+
@attribute_id = attribute_id
|
|
26
|
+
@attribute_value = attribute_value
|
|
27
|
+
@additional_properties = additional_properties
|
|
28
|
+
@_field_set = { "attributeId": attribute_id, "attributeValue": attribute_value }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Deserialize a JSON object to an instance of AdminPointsBoostUserAttributesItem
|
|
32
|
+
#
|
|
33
|
+
# @param json_object [String]
|
|
34
|
+
# @return [TrophyApiClient::AdminPointsBoostUserAttributesItem]
|
|
35
|
+
def self.from_json(json_object:)
|
|
36
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
37
|
+
parsed_json = JSON.parse(json_object)
|
|
38
|
+
attribute_id = parsed_json["attributeId"]
|
|
39
|
+
attribute_value = parsed_json["attributeValue"]
|
|
40
|
+
new(
|
|
41
|
+
attribute_id: attribute_id,
|
|
42
|
+
attribute_value: attribute_value,
|
|
43
|
+
additional_properties: struct
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Serialize an instance of AdminPointsBoostUserAttributesItem to a JSON object
|
|
48
|
+
#
|
|
49
|
+
# @return [String]
|
|
50
|
+
def to_json(*_args)
|
|
51
|
+
@_field_set&.to_json
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
55
|
+
# hash and check each fields type against the current object's property
|
|
56
|
+
# definitions.
|
|
57
|
+
#
|
|
58
|
+
# @param obj [Object]
|
|
59
|
+
# @return [Void]
|
|
60
|
+
def self.validate_raw(obj:)
|
|
61
|
+
obj.attribute_id.is_a?(String) != false || raise("Passed value for field obj.attribute_id is not the expected type, validation failed.")
|
|
62
|
+
obj.attribute_value.is_a?(String) != false || raise("Passed value for field obj.attribute_value is not the expected type, validation failed.")
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|