trophy_api_client 1.27.0 → 1.29.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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trophy/admin/client.rb +5 -0
  3. data/lib/trophy/admin/rewards/client.rb +207 -0
  4. data/lib/trophy/admin/rewards/triggers/client.rb +209 -0
  5. data/lib/trophy/admin/rewards/triggers/types/triggers_delete_request.rb +17 -0
  6. data/lib/trophy/admin/rewards/triggers/types/triggers_list_request.rb +19 -0
  7. data/lib/trophy/admin/rewards/types/rewards_delete_request.rb +13 -0
  8. data/lib/trophy/admin/rewards/types/rewards_list_request.rb +15 -0
  9. data/lib/trophy/client.rb +6 -1
  10. data/lib/trophy/rewards/client.rb +57 -0
  11. data/lib/trophy/rewards/types/rewards_redeem_request.rb +13 -0
  12. data/lib/trophy/types/achievement_completion_response.rb +4 -0
  13. data/lib/trophy/types/admin_reward.rb +28 -0
  14. data/lib/trophy/types/admin_reward_status.rb +12 -0
  15. data/lib/trophy/types/admin_reward_trigger.rb +30 -0
  16. data/lib/trophy/types/admin_reward_trigger_event_attributes_item.rb +11 -0
  17. data/lib/trophy/types/admin_reward_trigger_status.rb +12 -0
  18. data/lib/trophy/types/admin_reward_trigger_type.rb +14 -0
  19. data/lib/trophy/types/admin_reward_trigger_user_attributes_item.rb +11 -0
  20. data/lib/trophy/types/admin_reward_type.rb +12 -0
  21. data/lib/trophy/types/admin_reward_user_attributes_item.rb +11 -0
  22. data/lib/trophy/types/create_reward_request_item.rb +28 -0
  23. data/lib/trophy/types/create_reward_request_item_status.rb +12 -0
  24. data/lib/trophy/types/create_reward_request_item_type.rb +12 -0
  25. data/lib/trophy/types/create_reward_request_item_user_attributes_item.rb +11 -0
  26. data/lib/trophy/types/create_reward_trigger_request_item.rb +28 -0
  27. data/lib/trophy/types/create_reward_trigger_request_item_event_attributes_item.rb +11 -0
  28. data/lib/trophy/types/create_reward_trigger_request_item_status.rb +12 -0
  29. data/lib/trophy/types/create_reward_trigger_request_item_type.rb +14 -0
  30. data/lib/trophy/types/create_reward_trigger_request_item_user_attributes_item.rb +11 -0
  31. data/lib/trophy/types/create_reward_triggers_request.rb +23 -0
  32. data/lib/trophy/types/create_reward_triggers_response.rb +12 -0
  33. data/lib/trophy/types/create_rewards_request.rb +23 -0
  34. data/lib/trophy/types/create_rewards_response.rb +12 -0
  35. data/lib/trophy/types/created_admin_reward.rb +31 -0
  36. data/lib/trophy/types/delete_reward_triggers_response.rb +12 -0
  37. data/lib/trophy/types/delete_rewards_response.rb +12 -0
  38. data/lib/trophy/types/event_response.rb +2 -0
  39. data/lib/trophy/types/list_reward_triggers_response.rb +23 -0
  40. data/lib/trophy/types/list_rewards_response.rb +23 -0
  41. data/lib/trophy/types/points_trigger.rb +4 -0
  42. data/lib/trophy/types/points_trigger_type.rb +1 -0
  43. data/lib/trophy/types/redeem_reward_response.rb +15 -0
  44. data/lib/trophy/types/redeemed_reward.rb +13 -0
  45. data/lib/trophy/types/reward_summary.rb +23 -0
  46. data/lib/trophy/types/reward_summary_type.rb +12 -0
  47. data/lib/trophy/types/reward_webhook_event.rb +17 -0
  48. data/lib/trophy/types/reward_webhook_event_redemption.rb +17 -0
  49. data/lib/trophy/types/reward_webhook_event_type.rb +12 -0
  50. data/lib/trophy/types/update_reward_request_item.rb +27 -0
  51. data/lib/trophy/types/update_reward_request_item_status.rb +12 -0
  52. data/lib/trophy/types/update_reward_request_item_type.rb +12 -0
  53. data/lib/trophy/types/update_reward_request_item_user_attributes_item.rb +11 -0
  54. data/lib/trophy/types/update_reward_triggers_request.rb +23 -0
  55. data/lib/trophy/types/update_reward_triggers_request_item.rb +29 -0
  56. data/lib/trophy/types/update_reward_triggers_request_item_event_attributes_item.rb +11 -0
  57. data/lib/trophy/types/update_reward_triggers_request_item_status.rb +12 -0
  58. data/lib/trophy/types/update_reward_triggers_request_item_type.rb +14 -0
  59. data/lib/trophy/types/update_reward_triggers_request_item_user_attributes_item.rb +11 -0
  60. data/lib/trophy/types/update_reward_triggers_response.rb +12 -0
  61. data/lib/trophy/types/update_rewards_request.rb +23 -0
  62. data/lib/trophy/types/update_rewards_response.rb +12 -0
  63. data/lib/trophy/types/user.rb +2 -0
  64. data/lib/trophy/types/user_reward_response.rb +19 -0
  65. data/lib/trophy/types/user_reward_trigger.rb +25 -0
  66. data/lib/trophy/types/user_reward_trigger_type.rb +14 -0
  67. data/lib/trophy/users/client.rb +45 -0
  68. data/lib/trophy/users/types/users_rewards_request.rb +21 -0
  69. data/lib/trophy/version.rb +1 -1
  70. data/lib/trophy.rb +59 -0
  71. data/reference.md +1274 -368
  72. metadata +60 -1
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # A reward trigger as returned from admin endpoints.
6
+ class AdminRewardTrigger < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :type, -> { Trophy::Types::AdminRewardTriggerType }, optional: false, nullable: false
10
+
11
+ field :status, -> { Trophy::Types::AdminRewardTriggerStatus }, optional: false, nullable: false
12
+
13
+ field :user_attributes, -> { Internal::Types::Array[Trophy::Types::AdminRewardTriggerUserAttributesItem] }, optional: false, nullable: false, api_name: "userAttributes"
14
+
15
+ field :metric_id, -> { String }, optional: true, nullable: false, api_name: "metricId"
16
+
17
+ field :metric_threshold, -> { Integer }, optional: true, nullable: false, api_name: "metricThreshold"
18
+
19
+ field :event_attributes, -> { Internal::Types::Array[Trophy::Types::AdminRewardTriggerEventAttributesItem] }, optional: true, nullable: false, api_name: "eventAttributes"
20
+
21
+ field :achievement_id, -> { String }, optional: true, nullable: false, api_name: "achievementId"
22
+
23
+ field :streak_length, -> { Integer }, optional: true, nullable: false, api_name: "streakLength"
24
+
25
+ field :leaderboard_id, -> { String }, optional: true, nullable: false, api_name: "leaderboardId"
26
+
27
+ field :rank, -> { Integer }, optional: true, nullable: false
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class AdminRewardTriggerEventAttributesItem < Internal::Types::Model
6
+ field :attribute_id, -> { String }, optional: false, nullable: false, api_name: "attributeId"
7
+
8
+ field :attribute_value, -> { String }, optional: false, nullable: false, api_name: "attributeValue"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module AdminRewardTriggerStatus
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ ACTIVE = "active"
9
+ INACTIVE = "inactive"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module AdminRewardTriggerType
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ METRIC = "metric"
9
+ ACHIEVEMENT = "achievement"
10
+ STREAK = "streak"
11
+ LEADERBOARD = "leaderboard"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class AdminRewardTriggerUserAttributesItem < Internal::Types::Model
6
+ field :attribute_id, -> { String }, optional: false, nullable: false, api_name: "attributeId"
7
+
8
+ field :attribute_value, -> { String }, optional: false, nullable: false, api_name: "attributeValue"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module AdminRewardType
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ POINTS = "points"
9
+ CUSTOM = "custom"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class AdminRewardUserAttributesItem < Internal::Types::Model
6
+ field :attribute_id, -> { String }, optional: false, nullable: false, api_name: "attributeId"
7
+
8
+ field :attribute_value, -> { String }, optional: false, nullable: false, api_name: "attributeValue"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # A reward to create. Optionally include triggers.
6
+ class CreateRewardRequestItem < Internal::Types::Model
7
+ field :name, -> { String }, optional: false, nullable: false
8
+
9
+ field :key, -> { String }, optional: false, nullable: false
10
+
11
+ field :description, -> { String }, optional: true, nullable: false
12
+
13
+ field :status, -> { Trophy::Types::CreateRewardRequestItemStatus }, optional: true, nullable: false
14
+
15
+ field :type, -> { Trophy::Types::CreateRewardRequestItemType }, optional: false, nullable: false
16
+
17
+ field :points_system_id, -> { String }, optional: true, nullable: false, api_name: "pointsSystemId"
18
+
19
+ field :points, -> { Integer }, optional: true, nullable: false
20
+
21
+ field :max_redemptions, -> { Integer }, optional: true, nullable: false, api_name: "maxRedemptions"
22
+
23
+ field :user_attributes, -> { Internal::Types::Array[Trophy::Types::CreateRewardRequestItemUserAttributesItem] }, optional: true, nullable: false, api_name: "userAttributes"
24
+
25
+ field :triggers, -> { Internal::Types::Array[Trophy::Types::CreateRewardTriggerRequestItem] }, optional: true, nullable: false
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module CreateRewardRequestItemStatus
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ ACTIVE = "active"
9
+ INACTIVE = "inactive"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module CreateRewardRequestItemType
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ POINTS = "points"
9
+ CUSTOM = "custom"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class CreateRewardRequestItemUserAttributesItem < Internal::Types::Model
6
+ field :attribute_id, -> { String }, optional: false, nullable: false, api_name: "attributeId"
7
+
8
+ field :attribute_value, -> { String }, optional: false, nullable: false, api_name: "attributeValue"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # A reward trigger to create.
6
+ class CreateRewardTriggerRequestItem < Internal::Types::Model
7
+ field :type, -> { Trophy::Types::CreateRewardTriggerRequestItemType }, optional: false, nullable: false
8
+
9
+ field :status, -> { Trophy::Types::CreateRewardTriggerRequestItemStatus }, optional: true, nullable: false
10
+
11
+ field :user_attributes, -> { Internal::Types::Array[Trophy::Types::CreateRewardTriggerRequestItemUserAttributesItem] }, optional: true, nullable: false, api_name: "userAttributes"
12
+
13
+ field :metric_id, -> { String }, optional: true, nullable: false, api_name: "metricId"
14
+
15
+ field :metric_threshold, -> { Integer }, optional: true, nullable: false, api_name: "metricThreshold"
16
+
17
+ field :event_attributes, -> { Internal::Types::Array[Trophy::Types::CreateRewardTriggerRequestItemEventAttributesItem] }, optional: true, nullable: false, api_name: "eventAttributes"
18
+
19
+ field :achievement_id, -> { String }, optional: true, nullable: false, api_name: "achievementId"
20
+
21
+ field :streak_length, -> { Integer }, optional: true, nullable: false, api_name: "streakLength"
22
+
23
+ field :leaderboard_id, -> { String }, optional: true, nullable: false, api_name: "leaderboardId"
24
+
25
+ field :rank, -> { Integer }, optional: true, nullable: false
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class CreateRewardTriggerRequestItemEventAttributesItem < Internal::Types::Model
6
+ field :attribute_id, -> { String }, optional: false, nullable: false, api_name: "attributeId"
7
+
8
+ field :attribute_value, -> { String }, optional: false, nullable: false, api_name: "attributeValue"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module CreateRewardTriggerRequestItemStatus
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ ACTIVE = "active"
9
+ INACTIVE = "inactive"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module CreateRewardTriggerRequestItemType
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ METRIC = "metric"
9
+ ACHIEVEMENT = "achievement"
10
+ STREAK = "streak"
11
+ LEADERBOARD = "leaderboard"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class CreateRewardTriggerRequestItemUserAttributesItem < Internal::Types::Model
6
+ field :attribute_id, -> { String }, optional: false, nullable: false, api_name: "attributeId"
7
+
8
+ field :attribute_value, -> { String }, optional: false, nullable: false, api_name: "attributeValue"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module CreateRewardTriggersRequest
6
+ # CreateRewardTriggersRequest is an alias for Array
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # Response containing created triggers and any per-item issues.
6
+ class CreateRewardTriggersResponse < Internal::Types::Model
7
+ field :created, -> { Internal::Types::Array[Trophy::Types::AdminRewardTrigger] }, optional: false, nullable: false
8
+
9
+ field :issues, -> { Internal::Types::Array[Trophy::Types::AdminIssue] }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module CreateRewardsRequest
6
+ # CreateRewardsRequest is an alias for Array
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # Response containing created rewards and any per-item issues.
6
+ class CreateRewardsResponse < Internal::Types::Model
7
+ field :created, -> { Internal::Types::Array[Trophy::Types::CreatedAdminReward] }, optional: false, nullable: false
8
+
9
+ field :issues, -> { Internal::Types::Array[Trophy::Types::AdminIssue] }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # A reward returned from the creation endpoint. Extends AdminReward with the triggers created alongside it, present
6
+ # when triggers were included in the creation request.
7
+ class CreatedAdminReward < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+
10
+ field :name, -> { String }, optional: false, nullable: false
11
+
12
+ field :key, -> { String }, optional: false, nullable: false
13
+
14
+ field :description, -> { String }, optional: true, nullable: false
15
+
16
+ field :status, -> { Trophy::Types::AdminRewardStatus }, optional: false, nullable: false
17
+
18
+ field :type, -> { Trophy::Types::AdminRewardType }, optional: false, nullable: false
19
+
20
+ field :points_system_id, -> { String }, optional: true, nullable: false, api_name: "pointsSystemId"
21
+
22
+ field :points, -> { Integer }, optional: true, nullable: false
23
+
24
+ field :max_redemptions, -> { Integer }, optional: true, nullable: false, api_name: "maxRedemptions"
25
+
26
+ field :user_attributes, -> { Internal::Types::Array[Trophy::Types::AdminRewardUserAttributesItem] }, optional: false, nullable: false, api_name: "userAttributes"
27
+
28
+ field :triggers, -> { Internal::Types::Array[Trophy::Types::AdminRewardTrigger] }, optional: true, nullable: false
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # Response containing the reward triggers that were deleted and any per-item issues.
6
+ class DeleteRewardTriggersResponse < Internal::Types::Model
7
+ field :deleted, -> { Internal::Types::Array[Trophy::Types::DeletedResource] }, optional: false, nullable: false
8
+
9
+ field :issues, -> { Internal::Types::Array[Trophy::Types::AdminIssue] }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # Response containing deleted reward IDs and any per-item issues.
6
+ class DeleteRewardsResponse < Internal::Types::Model
7
+ field :deleted, -> { Internal::Types::Array[Trophy::Types::DeletedResource] }, optional: false, nullable: false
8
+
9
+ field :issues, -> { Internal::Types::Array[Trophy::Types::AdminIssue] }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
@@ -17,6 +17,8 @@ module Trophy
17
17
 
18
18
  field :leaderboards, -> { Internal::Types::Hash[String, Trophy::Types::MetricEventLeaderboardResponse] }, optional: false, nullable: false
19
19
 
20
+ field :rewards, -> { Internal::Types::Array[Trophy::Types::UserRewardResponse] }, optional: false, nullable: false
21
+
20
22
  field :idempotency_key, -> { String }, optional: true, nullable: false, api_name: "idempotencyKey"
21
23
 
22
24
  field :idempotent_replayed, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "idempotentReplayed"
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module ListRewardTriggersResponse
6
+ # ListRewardTriggersResponse is an alias for Array
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module ListRewardsResponse
6
+ # ListRewardsResponse is an alias for Array
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -23,6 +23,10 @@ module Trophy
23
23
 
24
24
  field :achievement_name, -> { String }, optional: true, nullable: false, api_name: "achievementName"
25
25
 
26
+ field :reward_key, -> { String }, optional: true, nullable: false, api_name: "rewardKey"
27
+
28
+ field :reward_name, -> { String }, optional: true, nullable: false, api_name: "rewardName"
29
+
26
30
  field :time_unit, -> { Trophy::Types::PointsTriggerTimeUnit }, optional: true, nullable: false, api_name: "timeUnit"
27
31
 
28
32
  field :time_interval, -> { Integer }, optional: true, nullable: false, api_name: "timeInterval"
@@ -10,6 +10,7 @@ module Trophy
10
10
  STREAK = "streak"
11
11
  TIME = "time"
12
12
  USER_CREATION = "user_creation"
13
+ REWARD = "reward"
13
14
  end
14
15
  end
15
16
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class RedeemRewardResponse < Internal::Types::Model
6
+ field :reward, -> { Trophy::Types::RewardSummary }, optional: false, nullable: false
7
+
8
+ field :redemptions, -> { Internal::Types::Array[Trophy::Types::RedeemedReward] }, optional: false, nullable: false
9
+
10
+ field :points, -> { Internal::Types::Hash[String, Trophy::Types::MetricEventPointsResponse] }, optional: true, nullable: false
11
+
12
+ field :leaderboards, -> { Internal::Types::Hash[String, Trophy::Types::MetricEventLeaderboardResponse] }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class RedeemedReward < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :awarded_at, -> { String }, optional: false, nullable: false, api_name: "awardedAt"
9
+
10
+ field :redeemed_at, -> { String }, optional: false, nullable: false, api_name: "redeemedAt"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class RewardSummary < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :key, -> { String }, optional: false, nullable: false
9
+
10
+ field :name, -> { String }, optional: false, nullable: false
11
+
12
+ field :description, -> { String }, optional: true, nullable: false
13
+
14
+ field :type, -> { Trophy::Types::RewardSummaryType }, optional: false, nullable: false
15
+
16
+ field :points, -> { Integer }, optional: true, nullable: false
17
+
18
+ field :points_system_id, -> { String }, optional: true, nullable: false, api_name: "pointsSystemId"
19
+
20
+ field :points_system_key, -> { String }, optional: true, nullable: false, api_name: "pointsSystemKey"
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module RewardSummaryType
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ POINTS = "points"
9
+ CUSTOM = "custom"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class RewardWebhookEvent < Internal::Types::Model
6
+ field :type, -> { Trophy::Types::RewardWebhookEventType }, optional: false, nullable: false
7
+
8
+ field :timestamp, -> { String }, optional: false, nullable: false
9
+
10
+ field :user, -> { Trophy::Types::User }, optional: false, nullable: false
11
+
12
+ field :reward, -> { Trophy::Types::RewardSummary }, optional: false, nullable: false
13
+
14
+ field :redemption, -> { Trophy::Types::RewardWebhookEventRedemption }, optional: false, nullable: false
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ class RewardWebhookEventRedemption < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :redeemed, -> { Internal::Types::Boolean }, optional: false, nullable: false
9
+
10
+ field :awarded_at, -> { String }, optional: false, nullable: false, api_name: "awardedAt"
11
+
12
+ field :redeemed_at, -> { String }, optional: true, nullable: false, api_name: "redeemedAt"
13
+
14
+ field :trigger, -> { Trophy::Types::UserRewardTrigger }, optional: true, nullable: false
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module RewardWebhookEventType
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ REWARD_AWARDED = "reward.awarded"
9
+ REWARD_REDEEMED = "reward.redeemed"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ # A reward update object. Only id is required; all other fields are optional. Triggers are updated through the
6
+ # reward triggers endpoints.
7
+ class UpdateRewardRequestItem < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+
10
+ field :name, -> { String }, optional: true, nullable: false
11
+
12
+ field :description, -> { String }, optional: true, nullable: false
13
+
14
+ field :status, -> { Trophy::Types::UpdateRewardRequestItemStatus }, optional: true, nullable: false
15
+
16
+ field :type, -> { Trophy::Types::UpdateRewardRequestItemType }, optional: true, nullable: false
17
+
18
+ field :points_system_id, -> { String }, optional: true, nullable: false, api_name: "pointsSystemId"
19
+
20
+ field :points, -> { Integer }, optional: true, nullable: false
21
+
22
+ field :max_redemptions, -> { Integer }, optional: true, nullable: false, api_name: "maxRedemptions"
23
+
24
+ field :user_attributes, -> { Internal::Types::Array[Trophy::Types::UpdateRewardRequestItemUserAttributesItem] }, optional: true, nullable: false, api_name: "userAttributes"
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module UpdateRewardRequestItemStatus
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ ACTIVE = "active"
9
+ INACTIVE = "inactive"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trophy
4
+ module Types
5
+ module UpdateRewardRequestItemType
6
+ extend Trophy::Internal::Types::Enum
7
+
8
+ POINTS = "points"
9
+ CUSTOM = "custom"
10
+ end
11
+ end
12
+ end