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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gemconfig.rb +1 -1
  3. data/lib/trophy_api_client/admin/points/boosts/client.rb +258 -39
  4. data/lib/trophy_api_client/admin/points/client.rb +21 -0
  5. data/lib/trophy_api_client/admin/points/levels/client.rb +402 -0
  6. data/lib/trophy_api_client/admin/points/systems/client.rb +374 -0
  7. data/lib/trophy_api_client/admin/points/triggers/client.rb +402 -0
  8. data/lib/trophy_api_client/types/{created_points_boost.rb → admin_points_boost.rb} +39 -23
  9. data/lib/trophy_api_client/types/{created_points_boost_rounding.rb → admin_points_boost_rounding.rb} +1 -1
  10. data/lib/trophy_api_client/types/{created_points_boost_status.rb → admin_points_boost_status.rb} +1 -1
  11. data/lib/trophy_api_client/types/admin_points_boost_user_attributes_item.rb +65 -0
  12. data/lib/trophy_api_client/types/admin_points_level.rb +109 -0
  13. data/lib/trophy_api_client/types/admin_points_level_badge.rb +55 -0
  14. data/lib/trophy_api_client/types/admin_points_system.rb +118 -0
  15. data/lib/trophy_api_client/types/admin_points_system_badge.rb +55 -0
  16. data/lib/trophy_api_client/types/admin_points_system_status.rb +9 -0
  17. data/lib/trophy_api_client/types/admin_points_trigger.rb +175 -0
  18. data/lib/trophy_api_client/types/admin_points_trigger_event_attributes_item.rb +66 -0
  19. data/lib/trophy_api_client/types/admin_points_trigger_status.rb +9 -0
  20. data/lib/trophy_api_client/types/admin_points_trigger_time_unit.rb +9 -0
  21. data/lib/trophy_api_client/types/admin_points_trigger_type.rb +12 -0
  22. data/lib/trophy_api_client/types/admin_points_trigger_user_attributes_item.rb +65 -0
  23. data/lib/trophy_api_client/types/create_points_boost_request_item.rb +125 -0
  24. data/lib/trophy_api_client/types/create_points_boost_request_item_rounding.rb +10 -0
  25. data/lib/trophy_api_client/types/create_points_boost_request_item_user_attributes_item.rb +67 -0
  26. data/lib/trophy_api_client/types/create_points_boosts_request.rb +7 -0
  27. data/lib/trophy_api_client/types/create_points_boosts_response.rb +4 -4
  28. data/lib/trophy_api_client/types/create_points_level_request_item.rb +103 -0
  29. data/lib/trophy_api_client/types/create_points_level_request_item_badge.rb +56 -0
  30. data/lib/trophy_api_client/types/create_points_levels_request.rb +7 -0
  31. data/lib/trophy_api_client/types/create_points_levels_response.rb +74 -0
  32. data/lib/trophy_api_client/types/create_points_system_request_item.rb +140 -0
  33. data/lib/trophy_api_client/types/create_points_system_request_item_badge.rb +55 -0
  34. data/lib/trophy_api_client/types/create_points_systems_request.rb +7 -0
  35. data/lib/trophy_api_client/types/create_points_systems_response.rb +74 -0
  36. data/lib/trophy_api_client/types/create_points_trigger_request_item.rb +167 -0
  37. data/lib/trophy_api_client/types/create_points_trigger_request_item_event_attributes_item.rb +67 -0
  38. data/lib/trophy_api_client/types/create_points_trigger_request_item_status.rb +9 -0
  39. data/lib/trophy_api_client/types/create_points_trigger_request_item_time_unit.rb +9 -0
  40. data/lib/trophy_api_client/types/create_points_trigger_request_item_type.rb +12 -0
  41. data/lib/trophy_api_client/types/create_points_trigger_request_item_user_attributes_item.rb +67 -0
  42. data/lib/trophy_api_client/types/create_points_triggers_request.rb +7 -0
  43. data/lib/trophy_api_client/types/create_points_triggers_response.rb +74 -0
  44. data/lib/trophy_api_client/types/created_admin_points_system.rb +163 -0
  45. data/lib/trophy_api_client/types/delete_points_levels_response.rb +74 -0
  46. data/lib/trophy_api_client/types/delete_points_systems_response.rb +74 -0
  47. data/lib/trophy_api_client/types/delete_points_triggers_response.rb +75 -0
  48. data/lib/trophy_api_client/types/list_points_boosts_response.rb +7 -0
  49. data/lib/trophy_api_client/types/list_points_levels_response.rb +7 -0
  50. data/lib/trophy_api_client/types/list_points_systems_response.rb +7 -0
  51. data/lib/trophy_api_client/types/list_points_triggers_response.rb +7 -0
  52. data/lib/trophy_api_client/types/patch_points_boosts_request.rb +7 -0
  53. data/lib/trophy_api_client/types/patch_points_boosts_request_item.rb +118 -0
  54. data/lib/trophy_api_client/types/patch_points_boosts_request_item_rounding.rb +10 -0
  55. data/lib/trophy_api_client/types/patch_points_boosts_request_item_user_attributes_item.rb +67 -0
  56. data/lib/trophy_api_client/types/patch_points_boosts_response.rb +74 -0
  57. data/lib/trophy_api_client/types/patch_points_levels_request.rb +7 -0
  58. data/lib/trophy_api_client/types/patch_points_levels_request_item.rb +100 -0
  59. data/lib/trophy_api_client/types/patch_points_levels_request_item_badge.rb +55 -0
  60. data/lib/trophy_api_client/types/patch_points_levels_response.rb +74 -0
  61. data/lib/trophy_api_client/types/patch_points_triggers_request.rb +7 -0
  62. data/lib/trophy_api_client/types/patch_points_triggers_request_item.rb +174 -0
  63. data/lib/trophy_api_client/types/patch_points_triggers_request_item_event_attributes_item.rb +67 -0
  64. data/lib/trophy_api_client/types/patch_points_triggers_request_item_status.rb +9 -0
  65. data/lib/trophy_api_client/types/patch_points_triggers_request_item_time_unit.rb +9 -0
  66. data/lib/trophy_api_client/types/patch_points_triggers_request_item_type.rb +13 -0
  67. data/lib/trophy_api_client/types/patch_points_triggers_request_item_user_attributes_item.rb +67 -0
  68. data/lib/trophy_api_client/types/patch_points_triggers_response.rb +74 -0
  69. data/lib/trophy_api_client/types/update_points_system_request_item.rb +102 -0
  70. data/lib/trophy_api_client/types/update_points_system_request_item_badge.rb +55 -0
  71. data/lib/trophy_api_client/types/update_points_systems_request.rb +7 -0
  72. data/lib/trophy_api_client/types/update_points_systems_response.rb +74 -0
  73. data/lib/trophy_api_client/version.rb +1 -1
  74. data/lib/types_export.rb +64 -5
  75. metadata +68 -6
  76. data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item.rb +0 -111
  77. data/lib/trophy_api_client/admin/points/boosts/types/create_points_boosts_request_boosts_item_rounding.rb +0 -16
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "admin_points_level_badge"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module TrophyApiClient
8
+ # A points level as returned from admin endpoints.
9
+ class AdminPointsLevel
10
+ # @return [String] The UUID of the level.
11
+ attr_reader :id
12
+ # @return [String] The name of the level.
13
+ attr_reader :name
14
+ # @return [String] The level key.
15
+ attr_reader :key
16
+ # @return [Integer] The threshold points value for the level.
17
+ attr_reader :points
18
+ # @return [String] The level description.
19
+ attr_reader :description
20
+ # @return [TrophyApiClient::AdminPointsLevelBadge] The badge for the level, or null if no badge is set.
21
+ attr_reader :badge
22
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
23
+ attr_reader :additional_properties
24
+ # @return [Object]
25
+ attr_reader :_field_set
26
+ protected :_field_set
27
+
28
+ OMIT = Object.new
29
+
30
+ # @param id [String] The UUID of the level.
31
+ # @param name [String] The name of the level.
32
+ # @param key [String] The level key.
33
+ # @param points [Integer] The threshold points value for the level.
34
+ # @param description [String] The level description.
35
+ # @param badge [TrophyApiClient::AdminPointsLevelBadge] The badge for the level, or null if no badge is set.
36
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
37
+ # @return [TrophyApiClient::AdminPointsLevel]
38
+ def initialize(id:, name:, key:, points:, description:, badge: OMIT, additional_properties: nil)
39
+ @id = id
40
+ @name = name
41
+ @key = key
42
+ @points = points
43
+ @description = description
44
+ @badge = badge if badge != OMIT
45
+ @additional_properties = additional_properties
46
+ @_field_set = {
47
+ "id": id,
48
+ "name": name,
49
+ "key": key,
50
+ "points": points,
51
+ "description": description,
52
+ "badge": badge
53
+ }.reject do |_k, v|
54
+ v == OMIT
55
+ end
56
+ end
57
+
58
+ # Deserialize a JSON object to an instance of AdminPointsLevel
59
+ #
60
+ # @param json_object [String]
61
+ # @return [TrophyApiClient::AdminPointsLevel]
62
+ def self.from_json(json_object:)
63
+ struct = JSON.parse(json_object, object_class: OpenStruct)
64
+ parsed_json = JSON.parse(json_object)
65
+ id = parsed_json["id"]
66
+ name = parsed_json["name"]
67
+ key = parsed_json["key"]
68
+ points = parsed_json["points"]
69
+ description = parsed_json["description"]
70
+ if parsed_json["badge"].nil?
71
+ badge = nil
72
+ else
73
+ badge = parsed_json["badge"].to_json
74
+ badge = TrophyApiClient::AdminPointsLevelBadge.from_json(json_object: badge)
75
+ end
76
+ new(
77
+ id: id,
78
+ name: name,
79
+ key: key,
80
+ points: points,
81
+ description: description,
82
+ badge: badge,
83
+ additional_properties: struct
84
+ )
85
+ end
86
+
87
+ # Serialize an instance of AdminPointsLevel to a JSON object
88
+ #
89
+ # @return [String]
90
+ def to_json(*_args)
91
+ @_field_set&.to_json
92
+ end
93
+
94
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
95
+ # hash and check each fields type against the current object's property
96
+ # definitions.
97
+ #
98
+ # @param obj [Object]
99
+ # @return [Void]
100
+ def self.validate_raw(obj:)
101
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
102
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
103
+ obj.key.is_a?(String) != false || raise("Passed value for field obj.key is not the expected type, validation failed.")
104
+ obj.points.is_a?(Integer) != false || raise("Passed value for field obj.points is not the expected type, validation failed.")
105
+ obj.description.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
106
+ obj.badge.nil? || TrophyApiClient::AdminPointsLevelBadge.validate_raw(obj: obj.badge)
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module TrophyApiClient
7
+ class AdminPointsLevelBadge
8
+ # @return [String] The URL of the badge image.
9
+ attr_reader :url
10
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
11
+ attr_reader :additional_properties
12
+ # @return [Object]
13
+ attr_reader :_field_set
14
+ protected :_field_set
15
+
16
+ OMIT = Object.new
17
+
18
+ # @param url [String] The URL of the badge image.
19
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
+ # @return [TrophyApiClient::AdminPointsLevelBadge]
21
+ def initialize(url:, additional_properties: nil)
22
+ @url = url
23
+ @additional_properties = additional_properties
24
+ @_field_set = { "url": url }
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of AdminPointsLevelBadge
28
+ #
29
+ # @param json_object [String]
30
+ # @return [TrophyApiClient::AdminPointsLevelBadge]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ parsed_json = JSON.parse(json_object)
34
+ url = parsed_json["url"]
35
+ new(url: url, additional_properties: struct)
36
+ end
37
+
38
+ # Serialize an instance of AdminPointsLevelBadge to a JSON object
39
+ #
40
+ # @return [String]
41
+ def to_json(*_args)
42
+ @_field_set&.to_json
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
46
+ # hash and check each fields type against the current object's property
47
+ # definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ obj.url.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "admin_points_system_status"
4
+ require_relative "admin_points_system_badge"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module TrophyApiClient
9
+ # A points system returned from the admin points systems endpoints.
10
+ class AdminPointsSystem
11
+ # @return [String] The UUID of the points system.
12
+ attr_reader :id
13
+ # @return [String] The points system name.
14
+ attr_reader :name
15
+ # @return [String] The points system key.
16
+ attr_reader :key
17
+ # @return [String] The points system description.
18
+ attr_reader :description
19
+ # @return [TrophyApiClient::AdminPointsSystemStatus] The points system status.
20
+ attr_reader :status
21
+ # @return [TrophyApiClient::AdminPointsSystemBadge] The badge for the points system.
22
+ attr_reader :badge
23
+ # @return [Integer] The maximum points a user can earn.
24
+ attr_reader :max_points
25
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
26
+ attr_reader :additional_properties
27
+ # @return [Object]
28
+ attr_reader :_field_set
29
+ protected :_field_set
30
+
31
+ OMIT = Object.new
32
+
33
+ # @param id [String] The UUID of the points system.
34
+ # @param name [String] The points system name.
35
+ # @param key [String] The points system key.
36
+ # @param description [String] The points system description.
37
+ # @param status [TrophyApiClient::AdminPointsSystemStatus] The points system status.
38
+ # @param badge [TrophyApiClient::AdminPointsSystemBadge] The badge for the points system.
39
+ # @param max_points [Integer] The maximum points a user can earn.
40
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
41
+ # @return [TrophyApiClient::AdminPointsSystem]
42
+ def initialize(id:, name:, key:, description:, status:, badge: OMIT, max_points: OMIT, additional_properties: nil)
43
+ @id = id
44
+ @name = name
45
+ @key = key
46
+ @description = description
47
+ @status = status
48
+ @badge = badge if badge != OMIT
49
+ @max_points = max_points if max_points != OMIT
50
+ @additional_properties = additional_properties
51
+ @_field_set = {
52
+ "id": id,
53
+ "name": name,
54
+ "key": key,
55
+ "description": description,
56
+ "status": status,
57
+ "badge": badge,
58
+ "maxPoints": max_points
59
+ }.reject do |_k, v|
60
+ v == OMIT
61
+ end
62
+ end
63
+
64
+ # Deserialize a JSON object to an instance of AdminPointsSystem
65
+ #
66
+ # @param json_object [String]
67
+ # @return [TrophyApiClient::AdminPointsSystem]
68
+ def self.from_json(json_object:)
69
+ struct = JSON.parse(json_object, object_class: OpenStruct)
70
+ parsed_json = JSON.parse(json_object)
71
+ id = parsed_json["id"]
72
+ name = parsed_json["name"]
73
+ key = parsed_json["key"]
74
+ description = parsed_json["description"]
75
+ status = parsed_json["status"]
76
+ if parsed_json["badge"].nil?
77
+ badge = nil
78
+ else
79
+ badge = parsed_json["badge"].to_json
80
+ badge = TrophyApiClient::AdminPointsSystemBadge.from_json(json_object: badge)
81
+ end
82
+ max_points = parsed_json["maxPoints"]
83
+ new(
84
+ id: id,
85
+ name: name,
86
+ key: key,
87
+ description: description,
88
+ status: status,
89
+ badge: badge,
90
+ max_points: max_points,
91
+ additional_properties: struct
92
+ )
93
+ end
94
+
95
+ # Serialize an instance of AdminPointsSystem to a JSON object
96
+ #
97
+ # @return [String]
98
+ def to_json(*_args)
99
+ @_field_set&.to_json
100
+ end
101
+
102
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
103
+ # hash and check each fields type against the current object's property
104
+ # definitions.
105
+ #
106
+ # @param obj [Object]
107
+ # @return [Void]
108
+ def self.validate_raw(obj:)
109
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
110
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
111
+ obj.key.is_a?(String) != false || raise("Passed value for field obj.key is not the expected type, validation failed.")
112
+ obj.description.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
113
+ obj.status.is_a?(TrophyApiClient::AdminPointsSystemStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
114
+ obj.badge.nil? || TrophyApiClient::AdminPointsSystemBadge.validate_raw(obj: obj.badge)
115
+ obj.max_points&.is_a?(Integer) != false || raise("Passed value for field obj.max_points is not the expected type, validation failed.")
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module TrophyApiClient
7
+ class AdminPointsSystemBadge
8
+ # @return [String]
9
+ attr_reader :url
10
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
11
+ attr_reader :additional_properties
12
+ # @return [Object]
13
+ attr_reader :_field_set
14
+ protected :_field_set
15
+
16
+ OMIT = Object.new
17
+
18
+ # @param url [String]
19
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
+ # @return [TrophyApiClient::AdminPointsSystemBadge]
21
+ def initialize(url:, additional_properties: nil)
22
+ @url = url
23
+ @additional_properties = additional_properties
24
+ @_field_set = { "url": url }
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of AdminPointsSystemBadge
28
+ #
29
+ # @param json_object [String]
30
+ # @return [TrophyApiClient::AdminPointsSystemBadge]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ parsed_json = JSON.parse(json_object)
34
+ url = parsed_json["url"]
35
+ new(url: url, additional_properties: struct)
36
+ end
37
+
38
+ # Serialize an instance of AdminPointsSystemBadge to a JSON object
39
+ #
40
+ # @return [String]
41
+ def to_json(*_args)
42
+ @_field_set&.to_json
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
46
+ # hash and check each fields type against the current object's property
47
+ # definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ obj.url.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # The points system status.
5
+ class AdminPointsSystemStatus
6
+ ACTIVE = "active"
7
+ ARCHIVED = "archived"
8
+ end
9
+ end
@@ -0,0 +1,175 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "admin_points_trigger_type"
4
+ require_relative "admin_points_trigger_status"
5
+ require_relative "admin_points_trigger_user_attributes_item"
6
+ require_relative "admin_points_trigger_event_attributes_item"
7
+ require_relative "admin_points_trigger_time_unit"
8
+ require "ostruct"
9
+ require "json"
10
+
11
+ module TrophyApiClient
12
+ # A points trigger as returned from admin endpoints.
13
+ class AdminPointsTrigger
14
+ # @return [String] The UUID of the trigger.
15
+ attr_reader :id
16
+ # @return [TrophyApiClient::AdminPointsTriggerType] The type of trigger.
17
+ attr_reader :type
18
+ # @return [Integer] The number of points awarded or deducted when the trigger fires.
19
+ attr_reader :points
20
+ # @return [TrophyApiClient::AdminPointsTriggerStatus] The status of the trigger.
21
+ attr_reader :status
22
+ # @return [Array<TrophyApiClient::AdminPointsTriggerUserAttributesItem>] User attribute filters applied to the trigger.
23
+ attr_reader :user_attributes
24
+ # @return [String] The UUID of the metric. Only present for metric triggers.
25
+ attr_reader :metric_id
26
+ # @return [Integer] The metric threshold. Only present for metric triggers.
27
+ attr_reader :metric_threshold
28
+ # @return [Array<TrophyApiClient::AdminPointsTriggerEventAttributesItem>] Event attribute filters applied to the trigger. Only present for metric
29
+ # triggers.
30
+ attr_reader :event_attributes
31
+ # @return [String] The UUID of the achievement. Only present for achievement triggers.
32
+ attr_reader :achievement_id
33
+ # @return [Integer] The streak length. Only present for streak triggers.
34
+ attr_reader :streak_length
35
+ # @return [TrophyApiClient::AdminPointsTriggerTimeUnit] The time unit. Only present for time triggers.
36
+ attr_reader :time_unit
37
+ # @return [Integer] The time interval. Only present for time triggers.
38
+ attr_reader :time_interval
39
+ # @return [Boolean] Whether metric events that would reduce the user's points below zero are
40
+ # blocked.
41
+ attr_reader :block_if_out_of_points
42
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
43
+ attr_reader :additional_properties
44
+ # @return [Object]
45
+ attr_reader :_field_set
46
+ protected :_field_set
47
+
48
+ OMIT = Object.new
49
+
50
+ # @param id [String] The UUID of the trigger.
51
+ # @param type [TrophyApiClient::AdminPointsTriggerType] The type of trigger.
52
+ # @param points [Integer] The number of points awarded or deducted when the trigger fires.
53
+ # @param status [TrophyApiClient::AdminPointsTriggerStatus] The status of the trigger.
54
+ # @param user_attributes [Array<TrophyApiClient::AdminPointsTriggerUserAttributesItem>] User attribute filters applied to the trigger.
55
+ # @param metric_id [String] The UUID of the metric. Only present for metric triggers.
56
+ # @param metric_threshold [Integer] The metric threshold. Only present for metric triggers.
57
+ # @param event_attributes [Array<TrophyApiClient::AdminPointsTriggerEventAttributesItem>] Event attribute filters applied to the trigger. Only present for metric
58
+ # triggers.
59
+ # @param achievement_id [String] The UUID of the achievement. Only present for achievement triggers.
60
+ # @param streak_length [Integer] The streak length. Only present for streak triggers.
61
+ # @param time_unit [TrophyApiClient::AdminPointsTriggerTimeUnit] The time unit. Only present for time triggers.
62
+ # @param time_interval [Integer] The time interval. Only present for time triggers.
63
+ # @param block_if_out_of_points [Boolean] Whether metric events that would reduce the user's points below zero are
64
+ # blocked.
65
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
66
+ # @return [TrophyApiClient::AdminPointsTrigger]
67
+ def initialize(id:, type:, points:, status:, user_attributes:, block_if_out_of_points:, metric_id: OMIT, metric_threshold: OMIT,
68
+ event_attributes: OMIT, achievement_id: OMIT, streak_length: OMIT, time_unit: OMIT, time_interval: OMIT, additional_properties: nil)
69
+ @id = id
70
+ @type = type
71
+ @points = points
72
+ @status = status
73
+ @user_attributes = user_attributes
74
+ @metric_id = metric_id if metric_id != OMIT
75
+ @metric_threshold = metric_threshold if metric_threshold != OMIT
76
+ @event_attributes = event_attributes if event_attributes != OMIT
77
+ @achievement_id = achievement_id if achievement_id != OMIT
78
+ @streak_length = streak_length if streak_length != OMIT
79
+ @time_unit = time_unit if time_unit != OMIT
80
+ @time_interval = time_interval if time_interval != OMIT
81
+ @block_if_out_of_points = block_if_out_of_points
82
+ @additional_properties = additional_properties
83
+ @_field_set = {
84
+ "id": id,
85
+ "type": type,
86
+ "points": points,
87
+ "status": status,
88
+ "userAttributes": user_attributes,
89
+ "metricId": metric_id,
90
+ "metricThreshold": metric_threshold,
91
+ "eventAttributes": event_attributes,
92
+ "achievementId": achievement_id,
93
+ "streakLength": streak_length,
94
+ "timeUnit": time_unit,
95
+ "timeInterval": time_interval,
96
+ "blockIfOutOfPoints": block_if_out_of_points
97
+ }.reject do |_k, v|
98
+ v == OMIT
99
+ end
100
+ end
101
+
102
+ # Deserialize a JSON object to an instance of AdminPointsTrigger
103
+ #
104
+ # @param json_object [String]
105
+ # @return [TrophyApiClient::AdminPointsTrigger]
106
+ def self.from_json(json_object:)
107
+ struct = JSON.parse(json_object, object_class: OpenStruct)
108
+ parsed_json = JSON.parse(json_object)
109
+ id = parsed_json["id"]
110
+ type = parsed_json["type"]
111
+ points = parsed_json["points"]
112
+ status = parsed_json["status"]
113
+ user_attributes = parsed_json["userAttributes"]&.map do |item|
114
+ item = item.to_json
115
+ TrophyApiClient::AdminPointsTriggerUserAttributesItem.from_json(json_object: item)
116
+ end
117
+ metric_id = parsed_json["metricId"]
118
+ metric_threshold = parsed_json["metricThreshold"]
119
+ event_attributes = parsed_json["eventAttributes"]&.map do |item|
120
+ item = item.to_json
121
+ TrophyApiClient::AdminPointsTriggerEventAttributesItem.from_json(json_object: item)
122
+ end
123
+ achievement_id = parsed_json["achievementId"]
124
+ streak_length = parsed_json["streakLength"]
125
+ time_unit = parsed_json["timeUnit"]
126
+ time_interval = parsed_json["timeInterval"]
127
+ block_if_out_of_points = parsed_json["blockIfOutOfPoints"]
128
+ new(
129
+ id: id,
130
+ type: type,
131
+ points: points,
132
+ status: status,
133
+ user_attributes: user_attributes,
134
+ metric_id: metric_id,
135
+ metric_threshold: metric_threshold,
136
+ event_attributes: event_attributes,
137
+ achievement_id: achievement_id,
138
+ streak_length: streak_length,
139
+ time_unit: time_unit,
140
+ time_interval: time_interval,
141
+ block_if_out_of_points: block_if_out_of_points,
142
+ additional_properties: struct
143
+ )
144
+ end
145
+
146
+ # Serialize an instance of AdminPointsTrigger to a JSON object
147
+ #
148
+ # @return [String]
149
+ def to_json(*_args)
150
+ @_field_set&.to_json
151
+ end
152
+
153
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
154
+ # hash and check each fields type against the current object's property
155
+ # definitions.
156
+ #
157
+ # @param obj [Object]
158
+ # @return [Void]
159
+ def self.validate_raw(obj:)
160
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
161
+ obj.type.is_a?(TrophyApiClient::AdminPointsTriggerType) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
162
+ obj.points.is_a?(Integer) != false || raise("Passed value for field obj.points is not the expected type, validation failed.")
163
+ obj.status.is_a?(TrophyApiClient::AdminPointsTriggerStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
164
+ obj.user_attributes.is_a?(Array) != false || raise("Passed value for field obj.user_attributes is not the expected type, validation failed.")
165
+ obj.metric_id&.is_a?(String) != false || raise("Passed value for field obj.metric_id is not the expected type, validation failed.")
166
+ obj.metric_threshold&.is_a?(Integer) != false || raise("Passed value for field obj.metric_threshold is not the expected type, validation failed.")
167
+ obj.event_attributes&.is_a?(Array) != false || raise("Passed value for field obj.event_attributes is not the expected type, validation failed.")
168
+ obj.achievement_id&.is_a?(String) != false || raise("Passed value for field obj.achievement_id is not the expected type, validation failed.")
169
+ obj.streak_length&.is_a?(Integer) != false || raise("Passed value for field obj.streak_length is not the expected type, validation failed.")
170
+ obj.time_unit&.is_a?(TrophyApiClient::AdminPointsTriggerTimeUnit) != false || raise("Passed value for field obj.time_unit is not the expected type, validation failed.")
171
+ obj.time_interval&.is_a?(Integer) != false || raise("Passed value for field obj.time_interval is not the expected type, validation failed.")
172
+ obj.block_if_out_of_points.is_a?(Boolean) != false || raise("Passed value for field obj.block_if_out_of_points is not the expected type, validation failed.")
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module TrophyApiClient
7
+ class AdminPointsTriggerEventAttributesItem
8
+ # @return [String]
9
+ attr_reader :attribute_id
10
+ # @return [String]
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]
21
+ # @param attribute_value [String]
22
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
23
+ # @return [TrophyApiClient::AdminPointsTriggerEventAttributesItem]
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
32
+ # AdminPointsTriggerEventAttributesItem
33
+ #
34
+ # @param json_object [String]
35
+ # @return [TrophyApiClient::AdminPointsTriggerEventAttributesItem]
36
+ def self.from_json(json_object:)
37
+ struct = JSON.parse(json_object, object_class: OpenStruct)
38
+ parsed_json = JSON.parse(json_object)
39
+ attribute_id = parsed_json["attributeId"]
40
+ attribute_value = parsed_json["attributeValue"]
41
+ new(
42
+ attribute_id: attribute_id,
43
+ attribute_value: attribute_value,
44
+ additional_properties: struct
45
+ )
46
+ end
47
+
48
+ # Serialize an instance of AdminPointsTriggerEventAttributesItem to a JSON object
49
+ #
50
+ # @return [String]
51
+ def to_json(*_args)
52
+ @_field_set&.to_json
53
+ end
54
+
55
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
56
+ # hash and check each fields type against the current object's property
57
+ # definitions.
58
+ #
59
+ # @param obj [Object]
60
+ # @return [Void]
61
+ def self.validate_raw(obj:)
62
+ obj.attribute_id.is_a?(String) != false || raise("Passed value for field obj.attribute_id is not the expected type, validation failed.")
63
+ obj.attribute_value.is_a?(String) != false || raise("Passed value for field obj.attribute_value is not the expected type, validation failed.")
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # The status of the trigger.
5
+ class AdminPointsTriggerStatus
6
+ ACTIVE = "active"
7
+ INACTIVE = "inactive"
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # The time unit. Only present for time triggers.
5
+ class AdminPointsTriggerTimeUnit
6
+ HOURS = "hours"
7
+ DAYS = "days"
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # The type of trigger.
5
+ class AdminPointsTriggerType
6
+ METRIC = "metric"
7
+ ACHIEVEMENT = "achievement"
8
+ STREAK = "streak"
9
+ TIME = "time"
10
+ USER_CREATION = "user_creation"
11
+ end
12
+ end