Skip to content

Commit 2bb5c3d

Browse files
Automatically update Ruby SDK
1 parent 9d2ff3c commit 2bb5c3d

69 files changed

Lines changed: 2799 additions & 370 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎lib/trophy.rb‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@
124124
require_relative "trophy/types/streak_preferences"
125125
require_relative "trophy/types/user_preferences_response"
126126
require_relative "trophy/types/error_body"
127+
require_relative "trophy/types/reward_summary_type"
128+
require_relative "trophy/types/reward_summary"
129+
require_relative "trophy/types/user_reward_trigger_type"
130+
require_relative "trophy/types/user_reward_trigger"
131+
require_relative "trophy/types/user_reward_response"
127132
require_relative "trophy/types/achievement_completion_response"
128133
require_relative "trophy/types/event_response"
129134
require_relative "trophy/types/points_range"
@@ -142,6 +147,11 @@
142147
require_relative "trophy/types/wrapped_entire_year"
143148
require_relative "trophy/types/wrapped_activity"
144149
require_relative "trophy/types/wrapped_response"
150+
require_relative "trophy/types/redeemed_reward"
151+
require_relative "trophy/types/redeem_reward_response"
152+
require_relative "trophy/types/reward_webhook_event_type"
153+
require_relative "trophy/types/reward_webhook_event_redemption"
154+
require_relative "trophy/types/reward_webhook_event"
145155
require_relative "trophy/types/admin_error_body"
146156
require_relative "trophy/types/batch_metric_event_user"
147157
require_relative "trophy/types/batch_metric_event"
@@ -324,16 +334,59 @@
324334
require_relative "trophy/types/update_tenants_request"
325335
require_relative "trophy/types/update_tenants_response"
326336
require_relative "trophy/types/delete_tenants_response"
337+
require_relative "trophy/types/create_reward_trigger_request_item_type"
338+
require_relative "trophy/types/create_reward_trigger_request_item_status"
339+
require_relative "trophy/types/create_reward_trigger_request_item_user_attributes_item"
340+
require_relative "trophy/types/create_reward_trigger_request_item_event_attributes_item"
341+
require_relative "trophy/types/create_reward_trigger_request_item"
342+
require_relative "trophy/types/create_reward_triggers_request"
343+
require_relative "trophy/types/admin_reward_trigger_type"
344+
require_relative "trophy/types/admin_reward_trigger_status"
345+
require_relative "trophy/types/admin_reward_trigger_user_attributes_item"
346+
require_relative "trophy/types/admin_reward_trigger_event_attributes_item"
347+
require_relative "trophy/types/admin_reward_trigger"
348+
require_relative "trophy/types/list_reward_triggers_response"
349+
require_relative "trophy/types/create_reward_triggers_response"
350+
require_relative "trophy/types/update_reward_triggers_request_item_type"
351+
require_relative "trophy/types/update_reward_triggers_request_item_status"
352+
require_relative "trophy/types/update_reward_triggers_request_item_user_attributes_item"
353+
require_relative "trophy/types/update_reward_triggers_request_item_event_attributes_item"
354+
require_relative "trophy/types/update_reward_triggers_request_item"
355+
require_relative "trophy/types/update_reward_triggers_request"
356+
require_relative "trophy/types/update_reward_triggers_response"
357+
require_relative "trophy/types/delete_reward_triggers_response"
358+
require_relative "trophy/types/create_reward_request_item_status"
359+
require_relative "trophy/types/create_reward_request_item_type"
360+
require_relative "trophy/types/create_reward_request_item_user_attributes_item"
361+
require_relative "trophy/types/create_reward_request_item"
362+
require_relative "trophy/types/create_rewards_request"
363+
require_relative "trophy/types/admin_reward_status"
364+
require_relative "trophy/types/admin_reward_type"
365+
require_relative "trophy/types/admin_reward_user_attributes_item"
366+
require_relative "trophy/types/admin_reward"
367+
require_relative "trophy/types/created_admin_reward"
368+
require_relative "trophy/types/list_rewards_response"
369+
require_relative "trophy/types/create_rewards_response"
370+
require_relative "trophy/types/update_reward_request_item_status"
371+
require_relative "trophy/types/update_reward_request_item_type"
372+
require_relative "trophy/types/update_reward_request_item_user_attributes_item"
373+
require_relative "trophy/types/update_reward_request_item"
374+
require_relative "trophy/types/update_rewards_request"
375+
require_relative "trophy/types/update_rewards_response"
376+
require_relative "trophy/types/delete_rewards_response"
327377
require_relative "trophy/client"
328378
require_relative "trophy/achievements/client"
329379
require_relative "trophy/achievements/types/achievements_all_request"
330380
require_relative "trophy/achievements/types/achievements_complete_request"
381+
require_relative "trophy/rewards/client"
382+
require_relative "trophy/rewards/types/rewards_redeem_request"
331383
require_relative "trophy/metrics/client"
332384
require_relative "trophy/metrics/types/metrics_event_request"
333385
require_relative "trophy/users/client"
334386
require_relative "trophy/users/types/update_user_preferences_request"
335387
require_relative "trophy/users/types/users_metric_event_summary_request"
336388
require_relative "trophy/users/types/users_achievements_request"
389+
require_relative "trophy/users/types/users_rewards_request"
337390
require_relative "trophy/users/types/users_streak_request"
338391
require_relative "trophy/users/types/users_points_request"
339392
require_relative "trophy/users/types/users_points_event_summary_request"
@@ -354,6 +407,9 @@
354407
require_relative "trophy/admin/achievements/client"
355408
require_relative "trophy/admin/achievements/types/achievements_list_request"
356409
require_relative "trophy/admin/achievements/types/achievements_delete_request"
410+
require_relative "trophy/admin/rewards/client"
411+
require_relative "trophy/admin/rewards/types/rewards_list_request"
412+
require_relative "trophy/admin/rewards/types/rewards_delete_request"
357413
require_relative "trophy/admin/metrics/client"
358414
require_relative "trophy/admin/metrics/types/metrics_list_request"
359415
require_relative "trophy/admin/metrics/types/metrics_delete_request"
@@ -384,6 +440,9 @@
384440
require_relative "trophy/admin/points/triggers/client"
385441
require_relative "trophy/admin/points/triggers/types/triggers_list_request"
386442
require_relative "trophy/admin/points/triggers/types/triggers_delete_request"
443+
require_relative "trophy/admin/rewards/triggers/client"
444+
require_relative "trophy/admin/rewards/triggers/types/triggers_list_request"
445+
require_relative "trophy/admin/rewards/triggers/types/triggers_delete_request"
387446
require_relative "trophy/admin/streaks/freezes/client"
388447
require_relative "trophy/admin/streaks/freezes/types/create_streak_freezes_request"
389448
require_relative "trophy/admin/streaks/pauses/client"

‎lib/trophy/admin/client.rb‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ def achievements
2424
@achievements ||= Trophy::Admin::Achievements::Client.new(client: @client, base_url: @base_url, environment: @environment)
2525
end
2626

27+
# @return [Trophy::Rewards::Client]
28+
def rewards
29+
@rewards ||= Trophy::Admin::Rewards::Client.new(client: @client, base_url: @base_url, environment: @environment)
30+
end
31+
2732
# @return [Trophy::Metrics::Client]
2833
def metrics
2934
@metrics ||= Trophy::Admin::Metrics::Client.new(client: @client, base_url: @base_url, environment: @environment)

‎lib/trophy/admin/rewards/client.rb‎

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
# frozen_string_literal: true
2+
3+
module Trophy
4+
module Admin
5+
module Rewards
6+
class Client
7+
# @param client [Trophy::Internal::Http::RawClient]
8+
# @param base_url [String, nil]
9+
# @param environment [Hash[Symbol, String], nil]
10+
#
11+
# @return [void]
12+
def initialize(client:, base_url: nil, environment: nil)
13+
@client = client
14+
@base_url = base_url
15+
@environment = environment
16+
end
17+
18+
# List rewards.
19+
#
20+
# @param request_options [Hash]
21+
# @param params [Hash]
22+
# @option request_options [String] :base_url
23+
# @option request_options [Hash{String => Object}] :additional_headers
24+
# @option request_options [Hash{String => Object}] :additional_query_parameters
25+
# @option request_options [Hash{String => Object}] :additional_body_parameters
26+
# @option request_options [Integer] :timeout_in_seconds
27+
# @option params [Integer, nil] :limit
28+
# @option params [Integer, nil] :skip
29+
#
30+
# @return [Array[Trophy::Types::AdminReward]]
31+
def list(request_options: {}, **params)
32+
params = Trophy::Internal::Types::Utils.normalize_keys(params)
33+
query_params = {}
34+
query_params["limit"] = params[:limit] if params.key?(:limit)
35+
query_params["skip"] = params[:skip] if params.key?(:skip)
36+
37+
request = Trophy::Internal::JSON::Request.new(
38+
base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
39+
method: "GET",
40+
path: "rewards",
41+
query: query_params,
42+
request_options: request_options
43+
)
44+
begin
45+
response = @client.send(request)
46+
rescue Net::HTTPRequestTimeout
47+
raise Trophy::Errors::TimeoutError
48+
end
49+
code = response.code.to_i
50+
if code.between?(200, 299)
51+
Trophy::Types::ListRewardsResponse.load(response.body)
52+
else
53+
error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
54+
raise error_class.new(response.body, code: code)
55+
end
56+
end
57+
58+
# Create rewards. Optionally include triggers in each reward payload to create them alongside the reward. A
59+
# reward with any invalid trigger is not created.
60+
#
61+
# @param request_options [Hash]
62+
# @param params [Trophy::Types::CreateRewardsRequest]
63+
# @option request_options [String] :base_url
64+
# @option request_options [Hash{String => Object}] :additional_headers
65+
# @option request_options [Hash{String => Object}] :additional_query_parameters
66+
# @option request_options [Hash{String => Object}] :additional_body_parameters
67+
# @option request_options [Integer] :timeout_in_seconds
68+
#
69+
# @return [Trophy::Types::CreateRewardsResponse]
70+
def create(request_options: {}, **params)
71+
params = Trophy::Internal::Types::Utils.normalize_keys(params)
72+
request = Trophy::Internal::JSON::Request.new(
73+
base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
74+
method: "POST",
75+
path: "rewards",
76+
body: params,
77+
request_options: request_options
78+
)
79+
begin
80+
response = @client.send(request)
81+
rescue Net::HTTPRequestTimeout
82+
raise Trophy::Errors::TimeoutError
83+
end
84+
code = response.code.to_i
85+
if code.between?(200, 299)
86+
Trophy::Types::CreateRewardsResponse.load(response.body)
87+
else
88+
error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
89+
raise error_class.new(response.body, code: code)
90+
end
91+
end
92+
93+
# Delete rewards by ID. Maximum 100 reward IDs per request. A deleted reward's triggers are deleted too.
94+
#
95+
# @param request_options [Hash]
96+
# @param params [Hash]
97+
# @option request_options [String] :base_url
98+
# @option request_options [Hash{String => Object}] :additional_headers
99+
# @option request_options [Hash{String => Object}] :additional_query_parameters
100+
# @option request_options [Hash{String => Object}] :additional_body_parameters
101+
# @option request_options [Integer] :timeout_in_seconds
102+
# @option params [String, nil] :ids
103+
#
104+
# @return [Trophy::Types::DeleteRewardsResponse]
105+
def delete(request_options: {}, **params)
106+
params = Trophy::Internal::Types::Utils.normalize_keys(params)
107+
query_params = {}
108+
query_params["ids"] = params[:ids] if params.key?(:ids)
109+
110+
request = Trophy::Internal::JSON::Request.new(
111+
base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
112+
method: "DELETE",
113+
path: "rewards",
114+
query: query_params,
115+
request_options: request_options
116+
)
117+
begin
118+
response = @client.send(request)
119+
rescue Net::HTTPRequestTimeout
120+
raise Trophy::Errors::TimeoutError
121+
end
122+
code = response.code.to_i
123+
if code.between?(200, 299)
124+
Trophy::Types::DeleteRewardsResponse.load(response.body)
125+
else
126+
error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
127+
raise error_class.new(response.body, code: code)
128+
end
129+
end
130+
131+
# Update rewards by ID. Maximum 100 rewards per request. Only provided fields are updated; omitted fields are
132+
# preserved. Use the reward triggers endpoints to change a reward's triggers.
133+
#
134+
# @param request_options [Hash]
135+
# @param params [Trophy::Types::UpdateRewardsRequest]
136+
# @option request_options [String] :base_url
137+
# @option request_options [Hash{String => Object}] :additional_headers
138+
# @option request_options [Hash{String => Object}] :additional_query_parameters
139+
# @option request_options [Hash{String => Object}] :additional_body_parameters
140+
# @option request_options [Integer] :timeout_in_seconds
141+
#
142+
# @return [Trophy::Types::UpdateRewardsResponse]
143+
def update(request_options: {}, **params)
144+
params = Trophy::Internal::Types::Utils.normalize_keys(params)
145+
request = Trophy::Internal::JSON::Request.new(
146+
base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
147+
method: "PATCH",
148+
path: "rewards",
149+
body: params,
150+
request_options: request_options
151+
)
152+
begin
153+
response = @client.send(request)
154+
rescue Net::HTTPRequestTimeout
155+
raise Trophy::Errors::TimeoutError
156+
end
157+
code = response.code.to_i
158+
if code.between?(200, 299)
159+
Trophy::Types::UpdateRewardsResponse.load(response.body)
160+
else
161+
error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
162+
raise error_class.new(response.body, code: code)
163+
end
164+
end
165+
166+
# Get a reward by ID.
167+
#
168+
# @param request_options [Hash]
169+
# @param params [Hash]
170+
# @option request_options [String] :base_url
171+
# @option request_options [Hash{String => Object}] :additional_headers
172+
# @option request_options [Hash{String => Object}] :additional_query_parameters
173+
# @option request_options [Hash{String => Object}] :additional_body_parameters
174+
# @option request_options [Integer] :timeout_in_seconds
175+
# @option params [String] :id
176+
#
177+
# @return [Trophy::Types::AdminReward]
178+
def get(request_options: {}, **params)
179+
params = Trophy::Internal::Types::Utils.normalize_keys(params)
180+
request = Trophy::Internal::JSON::Request.new(
181+
base_url: request_options[:base_url] || @base_url || @environment&.dig(:admin),
182+
method: "GET",
183+
path: "rewards/#{URI.encode_uri_component(params[:id].to_s)}",
184+
request_options: request_options
185+
)
186+
begin
187+
response = @client.send(request)
188+
rescue Net::HTTPRequestTimeout
189+
raise Trophy::Errors::TimeoutError
190+
end
191+
code = response.code.to_i
192+
if code.between?(200, 299)
193+
Trophy::Types::AdminReward.load(response.body)
194+
else
195+
error_class = Trophy::Errors::ResponseError.subclass_for_code(code)
196+
raise error_class.new(response.body, code: code)
197+
end
198+
end
199+
200+
# @return [Trophy::Triggers::Client]
201+
def triggers
202+
@triggers ||= Trophy::Admin::Rewards::Triggers::Client.new(client: @client, base_url: @base_url, environment: @environment)
203+
end
204+
end
205+
end
206+
end
207+
end

0 commit comments

Comments
 (0)