trophy_api_client 1.6.0 → 1.7.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 (29) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gemconfig.rb +1 -1
  3. data/lib/trophy_api_client/admin/attributes/client.rb +6 -6
  4. data/lib/trophy_api_client/admin/client.rb +14 -7
  5. data/lib/trophy_api_client/admin/leaderboards/client.rb +371 -0
  6. data/lib/trophy_api_client/admin/metrics/client.rb +6 -6
  7. data/lib/trophy_api_client/types/admin_leaderboard.rb +171 -0
  8. data/lib/trophy_api_client/types/admin_leaderboard_rank_by.rb +10 -0
  9. data/lib/trophy_api_client/types/admin_leaderboard_run_unit.rb +10 -0
  10. data/lib/trophy_api_client/types/admin_leaderboard_status.rb +11 -0
  11. data/lib/trophy_api_client/types/create_leaderboard_request_item.rb +171 -0
  12. data/lib/trophy_api_client/types/create_leaderboard_request_item_rank_by.rb +10 -0
  13. data/lib/trophy_api_client/types/create_leaderboard_request_item_run_unit.rb +11 -0
  14. data/lib/trophy_api_client/types/create_leaderboard_request_item_status.rb +13 -0
  15. data/lib/trophy_api_client/types/create_leaderboards_request.rb +7 -0
  16. data/lib/trophy_api_client/types/create_leaderboards_response.rb +74 -0
  17. data/lib/trophy_api_client/types/delete_leaderboards_response.rb +75 -0
  18. data/lib/trophy_api_client/types/list_leaderboards_response.rb +7 -0
  19. data/lib/trophy_api_client/types/update_leaderboard_request_item.rb +179 -0
  20. data/lib/trophy_api_client/types/update_leaderboard_request_item_rank_by.rb +11 -0
  21. data/lib/trophy_api_client/types/update_leaderboard_request_item_run_unit.rb +9 -0
  22. data/lib/trophy_api_client/types/update_leaderboard_request_item_status.rb +12 -0
  23. data/lib/trophy_api_client/types/update_leaderboards_request.rb +7 -0
  24. data/lib/trophy_api_client/types/update_leaderboards_response.rb +75 -0
  25. data/lib/trophy_api_client/users/client.rb +2 -2
  26. data/lib/trophy_api_client/version.rb +1 -1
  27. data/lib/types_export.rb +29 -12
  28. metadata +20 -2
  29. data/lib/trophy_api_client/types/notification_type.rb +0 -11
@@ -0,0 +1,171 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "admin_leaderboard_status"
4
+ require_relative "admin_leaderboard_rank_by"
5
+ require_relative "admin_leaderboard_run_unit"
6
+ require "ostruct"
7
+ require "json"
8
+
9
+ module TrophyApiClient
10
+ # A leaderboard returned from the admin leaderboards endpoints.
11
+ class AdminLeaderboard
12
+ # @return [String] The UUID of the leaderboard.
13
+ attr_reader :id
14
+ # @return [String] The leaderboard name.
15
+ attr_reader :name
16
+ # @return [String] The leaderboard key.
17
+ attr_reader :key
18
+ # @return [String] The leaderboard description.
19
+ attr_reader :description
20
+ # @return [TrophyApiClient::AdminLeaderboardStatus] The current user-facing status of the leaderboard.
21
+ attr_reader :status
22
+ # @return [TrophyApiClient::AdminLeaderboardRankBy] What the leaderboard ranks by.
23
+ attr_reader :rank_by
24
+ # @return [String] The metric ID used when `rankBy` is `metric`.
25
+ attr_reader :metric_id
26
+ # @return [String] The points system ID used when `rankBy` is `points`.
27
+ attr_reader :points_system_id
28
+ # @return [Integer] The maximum number of participants.
29
+ attr_reader :max_participants
30
+ # @return [String] The leaderboard start date in YYYY-MM-DD format.
31
+ attr_reader :start
32
+ # @return [String] The optional leaderboard end date in YYYY-MM-DD format.
33
+ attr_reader :end_
34
+ # @return [Array<String>] The UUIDs of the user attributes used for ranking breakdowns.
35
+ attr_reader :breakdown_attributes
36
+ # @return [TrophyApiClient::AdminLeaderboardRunUnit] The recurrence unit when the leaderboard repeats.
37
+ attr_reader :run_unit
38
+ # @return [Integer] The number of recurrence units between leaderboard runs.
39
+ attr_reader :run_interval
40
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
41
+ attr_reader :additional_properties
42
+ # @return [Object]
43
+ attr_reader :_field_set
44
+ protected :_field_set
45
+
46
+ OMIT = Object.new
47
+
48
+ # @param id [String] The UUID of the leaderboard.
49
+ # @param name [String] The leaderboard name.
50
+ # @param key [String] The leaderboard key.
51
+ # @param description [String] The leaderboard description.
52
+ # @param status [TrophyApiClient::AdminLeaderboardStatus] The current user-facing status of the leaderboard.
53
+ # @param rank_by [TrophyApiClient::AdminLeaderboardRankBy] What the leaderboard ranks by.
54
+ # @param metric_id [String] The metric ID used when `rankBy` is `metric`.
55
+ # @param points_system_id [String] The points system ID used when `rankBy` is `points`.
56
+ # @param max_participants [Integer] The maximum number of participants.
57
+ # @param start [String] The leaderboard start date in YYYY-MM-DD format.
58
+ # @param end_ [String] The optional leaderboard end date in YYYY-MM-DD format.
59
+ # @param breakdown_attributes [Array<String>] The UUIDs of the user attributes used for ranking breakdowns.
60
+ # @param run_unit [TrophyApiClient::AdminLeaderboardRunUnit] The recurrence unit when the leaderboard repeats.
61
+ # @param run_interval [Integer] The number of recurrence units between leaderboard runs.
62
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
63
+ # @return [TrophyApiClient::AdminLeaderboard]
64
+ def initialize(id:, name:, key:, status:, rank_by:, max_participants:, start:, breakdown_attributes:,
65
+ description: OMIT, metric_id: OMIT, points_system_id: OMIT, end_: OMIT, run_unit: OMIT, run_interval: OMIT, additional_properties: nil)
66
+ @id = id
67
+ @name = name
68
+ @key = key
69
+ @description = description if description != OMIT
70
+ @status = status
71
+ @rank_by = rank_by
72
+ @metric_id = metric_id if metric_id != OMIT
73
+ @points_system_id = points_system_id if points_system_id != OMIT
74
+ @max_participants = max_participants
75
+ @start = start
76
+ @end_ = end_ if end_ != OMIT
77
+ @breakdown_attributes = breakdown_attributes
78
+ @run_unit = run_unit if run_unit != OMIT
79
+ @run_interval = run_interval if run_interval != OMIT
80
+ @additional_properties = additional_properties
81
+ @_field_set = {
82
+ "id": id,
83
+ "name": name,
84
+ "key": key,
85
+ "description": description,
86
+ "status": status,
87
+ "rankBy": rank_by,
88
+ "metricId": metric_id,
89
+ "pointsSystemId": points_system_id,
90
+ "maxParticipants": max_participants,
91
+ "start": start,
92
+ "end": end_,
93
+ "breakdownAttributes": breakdown_attributes,
94
+ "runUnit": run_unit,
95
+ "runInterval": run_interval
96
+ }.reject do |_k, v|
97
+ v == OMIT
98
+ end
99
+ end
100
+
101
+ # Deserialize a JSON object to an instance of AdminLeaderboard
102
+ #
103
+ # @param json_object [String]
104
+ # @return [TrophyApiClient::AdminLeaderboard]
105
+ def self.from_json(json_object:)
106
+ struct = JSON.parse(json_object, object_class: OpenStruct)
107
+ parsed_json = JSON.parse(json_object)
108
+ id = parsed_json["id"]
109
+ name = parsed_json["name"]
110
+ key = parsed_json["key"]
111
+ description = parsed_json["description"]
112
+ status = parsed_json["status"]
113
+ rank_by = parsed_json["rankBy"]
114
+ metric_id = parsed_json["metricId"]
115
+ points_system_id = parsed_json["pointsSystemId"]
116
+ max_participants = parsed_json["maxParticipants"]
117
+ start = parsed_json["start"]
118
+ end_ = parsed_json["end"]
119
+ breakdown_attributes = parsed_json["breakdownAttributes"]
120
+ run_unit = parsed_json["runUnit"]
121
+ run_interval = parsed_json["runInterval"]
122
+ new(
123
+ id: id,
124
+ name: name,
125
+ key: key,
126
+ description: description,
127
+ status: status,
128
+ rank_by: rank_by,
129
+ metric_id: metric_id,
130
+ points_system_id: points_system_id,
131
+ max_participants: max_participants,
132
+ start: start,
133
+ end_: end_,
134
+ breakdown_attributes: breakdown_attributes,
135
+ run_unit: run_unit,
136
+ run_interval: run_interval,
137
+ additional_properties: struct
138
+ )
139
+ end
140
+
141
+ # Serialize an instance of AdminLeaderboard to a JSON object
142
+ #
143
+ # @return [String]
144
+ def to_json(*_args)
145
+ @_field_set&.to_json
146
+ end
147
+
148
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
149
+ # hash and check each fields type against the current object's property
150
+ # definitions.
151
+ #
152
+ # @param obj [Object]
153
+ # @return [Void]
154
+ def self.validate_raw(obj:)
155
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
156
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
157
+ obj.key.is_a?(String) != false || raise("Passed value for field obj.key is not the expected type, validation failed.")
158
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
159
+ obj.status.is_a?(TrophyApiClient::AdminLeaderboardStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
160
+ obj.rank_by.is_a?(TrophyApiClient::AdminLeaderboardRankBy) != false || raise("Passed value for field obj.rank_by is not the expected type, validation failed.")
161
+ obj.metric_id&.is_a?(String) != false || raise("Passed value for field obj.metric_id is not the expected type, validation failed.")
162
+ obj.points_system_id&.is_a?(String) != false || raise("Passed value for field obj.points_system_id is not the expected type, validation failed.")
163
+ obj.max_participants.is_a?(Integer) != false || raise("Passed value for field obj.max_participants is not the expected type, validation failed.")
164
+ obj.start.is_a?(String) != false || raise("Passed value for field obj.start is not the expected type, validation failed.")
165
+ obj.end_&.is_a?(String) != false || raise("Passed value for field obj.end_ is not the expected type, validation failed.")
166
+ obj.breakdown_attributes.is_a?(Array) != false || raise("Passed value for field obj.breakdown_attributes is not the expected type, validation failed.")
167
+ obj.run_unit&.is_a?(TrophyApiClient::AdminLeaderboardRunUnit) != false || raise("Passed value for field obj.run_unit is not the expected type, validation failed.")
168
+ obj.run_interval&.is_a?(Integer) != false || raise("Passed value for field obj.run_interval is not the expected type, validation failed.")
169
+ end
170
+ end
171
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # What the leaderboard ranks by.
5
+ class AdminLeaderboardRankBy
6
+ METRIC = "metric"
7
+ STREAK = "streak"
8
+ POINTS = "points"
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # The recurrence unit when the leaderboard repeats.
5
+ class AdminLeaderboardRunUnit
6
+ DAY = "day"
7
+ MONTH = "month"
8
+ YEAR = "year"
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # The current user-facing status of the leaderboard.
5
+ class AdminLeaderboardStatus
6
+ INACTIVE = "inactive"
7
+ ACTIVE = "active"
8
+ SCHEDULED = "scheduled"
9
+ FINISHED = "finished"
10
+ end
11
+ end
@@ -0,0 +1,171 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "create_leaderboard_request_item_status"
4
+ require_relative "create_leaderboard_request_item_rank_by"
5
+ require_relative "create_leaderboard_request_item_run_unit"
6
+ require "ostruct"
7
+ require "json"
8
+
9
+ module TrophyApiClient
10
+ # A leaderboard to create.
11
+ class CreateLeaderboardRequestItem
12
+ # @return [String] The leaderboard name.
13
+ attr_reader :name
14
+ # @return [String] The leaderboard key. Only alphanumeric characters, hyphens, and underscores are
15
+ # permitted.
16
+ attr_reader :key
17
+ # @return [String] The leaderboard description.
18
+ attr_reader :description
19
+ # @return [TrophyApiClient::CreateLeaderboardRequestItemStatus] The initial user-facing status. Defaults to `inactive`. Use `scheduled` for
20
+ # leaderboards that should be active in the future and `finished` only when
21
+ # creating a leaderboard with an end date in the past.
22
+ attr_reader :status
23
+ # @return [TrophyApiClient::CreateLeaderboardRequestItemRankBy] What the leaderboard ranks by.
24
+ attr_reader :rank_by
25
+ # @return [String] The metric ID to rank by when `rankBy` is `metric`.
26
+ attr_reader :metric_id
27
+ # @return [String] The points system ID to rank by when `rankBy` is `points`.
28
+ attr_reader :points_system_id
29
+ # @return [Integer] The maximum number of participants. Defaults to `1000`.
30
+ attr_reader :max_participants
31
+ # @return [String] The leaderboard start date in YYYY-MM-DD format. Defaults to today when omitted.
32
+ attr_reader :start
33
+ # @return [String] The optional leaderboard end date in YYYY-MM-DD format.
34
+ attr_reader :end_
35
+ # @return [Array<String>] The UUIDs of the active user attributes to break rankings down by.
36
+ attr_reader :breakdown_attributes
37
+ # @return [TrophyApiClient::CreateLeaderboardRequestItemRunUnit] How often the leaderboard repeats. Omit for a non-recurring leaderboard. Streak
38
+ # leaderboards cannot repeat.
39
+ attr_reader :run_unit
40
+ # @return [Integer] The number of `runUnit`s between repeats. Required when `runUnit` is set.
41
+ attr_reader :run_interval
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 name [String] The leaderboard name.
51
+ # @param key [String] The leaderboard key. Only alphanumeric characters, hyphens, and underscores are
52
+ # permitted.
53
+ # @param description [String] The leaderboard description.
54
+ # @param status [TrophyApiClient::CreateLeaderboardRequestItemStatus] The initial user-facing status. Defaults to `inactive`. Use `scheduled` for
55
+ # leaderboards that should be active in the future and `finished` only when
56
+ # creating a leaderboard with an end date in the past.
57
+ # @param rank_by [TrophyApiClient::CreateLeaderboardRequestItemRankBy] What the leaderboard ranks by.
58
+ # @param metric_id [String] The metric ID to rank by when `rankBy` is `metric`.
59
+ # @param points_system_id [String] The points system ID to rank by when `rankBy` is `points`.
60
+ # @param max_participants [Integer] The maximum number of participants. Defaults to `1000`.
61
+ # @param start [String] The leaderboard start date in YYYY-MM-DD format. Defaults to today when omitted.
62
+ # @param end_ [String] The optional leaderboard end date in YYYY-MM-DD format.
63
+ # @param breakdown_attributes [Array<String>] The UUIDs of the active user attributes to break rankings down by.
64
+ # @param run_unit [TrophyApiClient::CreateLeaderboardRequestItemRunUnit] How often the leaderboard repeats. Omit for a non-recurring leaderboard. Streak
65
+ # leaderboards cannot repeat.
66
+ # @param run_interval [Integer] The number of `runUnit`s between repeats. Required when `runUnit` is set.
67
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
68
+ # @return [TrophyApiClient::CreateLeaderboardRequestItem]
69
+ def initialize(name:, key:, rank_by:, description: OMIT, status: OMIT, metric_id: OMIT, points_system_id: OMIT,
70
+ max_participants: OMIT, start: OMIT, end_: OMIT, breakdown_attributes: OMIT, run_unit: OMIT, run_interval: OMIT, additional_properties: nil)
71
+ @name = name
72
+ @key = key
73
+ @description = description if description != OMIT
74
+ @status = status if status != OMIT
75
+ @rank_by = rank_by
76
+ @metric_id = metric_id if metric_id != OMIT
77
+ @points_system_id = points_system_id if points_system_id != OMIT
78
+ @max_participants = max_participants if max_participants != OMIT
79
+ @start = start if start != OMIT
80
+ @end_ = end_ if end_ != OMIT
81
+ @breakdown_attributes = breakdown_attributes if breakdown_attributes != OMIT
82
+ @run_unit = run_unit if run_unit != OMIT
83
+ @run_interval = run_interval if run_interval != OMIT
84
+ @additional_properties = additional_properties
85
+ @_field_set = {
86
+ "name": name,
87
+ "key": key,
88
+ "description": description,
89
+ "status": status,
90
+ "rankBy": rank_by,
91
+ "metricId": metric_id,
92
+ "pointsSystemId": points_system_id,
93
+ "maxParticipants": max_participants,
94
+ "start": start,
95
+ "end": end_,
96
+ "breakdownAttributes": breakdown_attributes,
97
+ "runUnit": run_unit,
98
+ "runInterval": run_interval
99
+ }.reject do |_k, v|
100
+ v == OMIT
101
+ end
102
+ end
103
+
104
+ # Deserialize a JSON object to an instance of CreateLeaderboardRequestItem
105
+ #
106
+ # @param json_object [String]
107
+ # @return [TrophyApiClient::CreateLeaderboardRequestItem]
108
+ def self.from_json(json_object:)
109
+ struct = JSON.parse(json_object, object_class: OpenStruct)
110
+ parsed_json = JSON.parse(json_object)
111
+ name = parsed_json["name"]
112
+ key = parsed_json["key"]
113
+ description = parsed_json["description"]
114
+ status = parsed_json["status"]
115
+ rank_by = parsed_json["rankBy"]
116
+ metric_id = parsed_json["metricId"]
117
+ points_system_id = parsed_json["pointsSystemId"]
118
+ max_participants = parsed_json["maxParticipants"]
119
+ start = parsed_json["start"]
120
+ end_ = parsed_json["end"]
121
+ breakdown_attributes = parsed_json["breakdownAttributes"]
122
+ run_unit = parsed_json["runUnit"]
123
+ run_interval = parsed_json["runInterval"]
124
+ new(
125
+ name: name,
126
+ key: key,
127
+ description: description,
128
+ status: status,
129
+ rank_by: rank_by,
130
+ metric_id: metric_id,
131
+ points_system_id: points_system_id,
132
+ max_participants: max_participants,
133
+ start: start,
134
+ end_: end_,
135
+ breakdown_attributes: breakdown_attributes,
136
+ run_unit: run_unit,
137
+ run_interval: run_interval,
138
+ additional_properties: struct
139
+ )
140
+ end
141
+
142
+ # Serialize an instance of CreateLeaderboardRequestItem to a JSON object
143
+ #
144
+ # @return [String]
145
+ def to_json(*_args)
146
+ @_field_set&.to_json
147
+ end
148
+
149
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
150
+ # hash and check each fields type against the current object's property
151
+ # definitions.
152
+ #
153
+ # @param obj [Object]
154
+ # @return [Void]
155
+ def self.validate_raw(obj:)
156
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
157
+ obj.key.is_a?(String) != false || raise("Passed value for field obj.key is not the expected type, validation failed.")
158
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
159
+ obj.status&.is_a?(TrophyApiClient::CreateLeaderboardRequestItemStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
160
+ obj.rank_by.is_a?(TrophyApiClient::CreateLeaderboardRequestItemRankBy) != false || raise("Passed value for field obj.rank_by is not the expected type, validation failed.")
161
+ obj.metric_id&.is_a?(String) != false || raise("Passed value for field obj.metric_id is not the expected type, validation failed.")
162
+ obj.points_system_id&.is_a?(String) != false || raise("Passed value for field obj.points_system_id is not the expected type, validation failed.")
163
+ obj.max_participants&.is_a?(Integer) != false || raise("Passed value for field obj.max_participants is not the expected type, validation failed.")
164
+ obj.start&.is_a?(String) != false || raise("Passed value for field obj.start is not the expected type, validation failed.")
165
+ obj.end_&.is_a?(String) != false || raise("Passed value for field obj.end_ is not the expected type, validation failed.")
166
+ obj.breakdown_attributes&.is_a?(Array) != false || raise("Passed value for field obj.breakdown_attributes is not the expected type, validation failed.")
167
+ obj.run_unit&.is_a?(TrophyApiClient::CreateLeaderboardRequestItemRunUnit) != false || raise("Passed value for field obj.run_unit is not the expected type, validation failed.")
168
+ obj.run_interval&.is_a?(Integer) != false || raise("Passed value for field obj.run_interval is not the expected type, validation failed.")
169
+ end
170
+ end
171
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # What the leaderboard ranks by.
5
+ class CreateLeaderboardRequestItemRankBy
6
+ METRIC = "metric"
7
+ STREAK = "streak"
8
+ POINTS = "points"
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # How often the leaderboard repeats. Omit for a non-recurring leaderboard. Streak
5
+ # leaderboards cannot repeat.
6
+ class CreateLeaderboardRequestItemRunUnit
7
+ DAY = "day"
8
+ MONTH = "month"
9
+ YEAR = "year"
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TrophyApiClient
4
+ # The initial user-facing status. Defaults to `inactive`. Use `scheduled` for
5
+ # leaderboards that should be active in the future and `finished` only when
6
+ # creating a leaderboard with an end date in the past.
7
+ class CreateLeaderboardRequestItemStatus
8
+ INACTIVE = "inactive"
9
+ ACTIVE = "active"
10
+ SCHEDULED = "scheduled"
11
+ FINISHED = "finished"
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "create_leaderboard_request_item"
4
+
5
+ module TrophyApiClient
6
+ CREATE_LEADERBOARDS_REQUEST = Array
7
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "admin_leaderboard"
4
+ require_relative "admin_issue"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module TrophyApiClient
9
+ # Response containing created leaderboards and any per-item issues.
10
+ class CreateLeaderboardsResponse
11
+ # @return [Array<TrophyApiClient::AdminLeaderboard>] Array of successfully created leaderboards.
12
+ attr_reader :created
13
+ # @return [Array<TrophyApiClient::AdminIssue>] Array of issues encountered during leaderboard creation.
14
+ attr_reader :issues
15
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
16
+ attr_reader :additional_properties
17
+ # @return [Object]
18
+ attr_reader :_field_set
19
+ protected :_field_set
20
+
21
+ OMIT = Object.new
22
+
23
+ # @param created [Array<TrophyApiClient::AdminLeaderboard>] Array of successfully created leaderboards.
24
+ # @param issues [Array<TrophyApiClient::AdminIssue>] Array of issues encountered during leaderboard creation.
25
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
26
+ # @return [TrophyApiClient::CreateLeaderboardsResponse]
27
+ def initialize(created:, issues:, additional_properties: nil)
28
+ @created = created
29
+ @issues = issues
30
+ @additional_properties = additional_properties
31
+ @_field_set = { "created": created, "issues": issues }
32
+ end
33
+
34
+ # Deserialize a JSON object to an instance of CreateLeaderboardsResponse
35
+ #
36
+ # @param json_object [String]
37
+ # @return [TrophyApiClient::CreateLeaderboardsResponse]
38
+ def self.from_json(json_object:)
39
+ struct = JSON.parse(json_object, object_class: OpenStruct)
40
+ parsed_json = JSON.parse(json_object)
41
+ created = parsed_json["created"]&.map do |item|
42
+ item = item.to_json
43
+ TrophyApiClient::AdminLeaderboard.from_json(json_object: item)
44
+ end
45
+ issues = parsed_json["issues"]&.map do |item|
46
+ item = item.to_json
47
+ TrophyApiClient::AdminIssue.from_json(json_object: item)
48
+ end
49
+ new(
50
+ created: created,
51
+ issues: issues,
52
+ additional_properties: struct
53
+ )
54
+ end
55
+
56
+ # Serialize an instance of CreateLeaderboardsResponse to a JSON object
57
+ #
58
+ # @return [String]
59
+ def to_json(*_args)
60
+ @_field_set&.to_json
61
+ end
62
+
63
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
64
+ # hash and check each fields type against the current object's property
65
+ # definitions.
66
+ #
67
+ # @param obj [Object]
68
+ # @return [Void]
69
+ def self.validate_raw(obj:)
70
+ obj.created.is_a?(Array) != false || raise("Passed value for field obj.created is not the expected type, validation failed.")
71
+ obj.issues.is_a?(Array) != false || raise("Passed value for field obj.issues is not the expected type, validation failed.")
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "deleted_resource"
4
+ require_relative "admin_issue"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module TrophyApiClient
9
+ # Response containing deleted leaderboards represented by ID and any per-item
10
+ # issues.
11
+ class DeleteLeaderboardsResponse
12
+ # @return [Array<TrophyApiClient::DeletedResource>] Array of deleted leaderboards represented by ID.
13
+ attr_reader :deleted
14
+ # @return [Array<TrophyApiClient::AdminIssue>] Array of issues encountered during leaderboard deletion.
15
+ attr_reader :issues
16
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
17
+ attr_reader :additional_properties
18
+ # @return [Object]
19
+ attr_reader :_field_set
20
+ protected :_field_set
21
+
22
+ OMIT = Object.new
23
+
24
+ # @param deleted [Array<TrophyApiClient::DeletedResource>] Array of deleted leaderboards represented by ID.
25
+ # @param issues [Array<TrophyApiClient::AdminIssue>] Array of issues encountered during leaderboard deletion.
26
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
27
+ # @return [TrophyApiClient::DeleteLeaderboardsResponse]
28
+ def initialize(deleted:, issues:, additional_properties: nil)
29
+ @deleted = deleted
30
+ @issues = issues
31
+ @additional_properties = additional_properties
32
+ @_field_set = { "deleted": deleted, "issues": issues }
33
+ end
34
+
35
+ # Deserialize a JSON object to an instance of DeleteLeaderboardsResponse
36
+ #
37
+ # @param json_object [String]
38
+ # @return [TrophyApiClient::DeleteLeaderboardsResponse]
39
+ def self.from_json(json_object:)
40
+ struct = JSON.parse(json_object, object_class: OpenStruct)
41
+ parsed_json = JSON.parse(json_object)
42
+ deleted = parsed_json["deleted"]&.map do |item|
43
+ item = item.to_json
44
+ TrophyApiClient::DeletedResource.from_json(json_object: item)
45
+ end
46
+ issues = parsed_json["issues"]&.map do |item|
47
+ item = item.to_json
48
+ TrophyApiClient::AdminIssue.from_json(json_object: item)
49
+ end
50
+ new(
51
+ deleted: deleted,
52
+ issues: issues,
53
+ additional_properties: struct
54
+ )
55
+ end
56
+
57
+ # Serialize an instance of DeleteLeaderboardsResponse to a JSON object
58
+ #
59
+ # @return [String]
60
+ def to_json(*_args)
61
+ @_field_set&.to_json
62
+ end
63
+
64
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
65
+ # hash and check each fields type against the current object's property
66
+ # definitions.
67
+ #
68
+ # @param obj [Object]
69
+ # @return [Void]
70
+ def self.validate_raw(obj:)
71
+ obj.deleted.is_a?(Array) != false || raise("Passed value for field obj.deleted is not the expected type, validation failed.")
72
+ obj.issues.is_a?(Array) != false || raise("Passed value for field obj.issues is not the expected type, validation failed.")
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "admin_leaderboard"
4
+
5
+ module TrophyApiClient
6
+ LIST_LEADERBOARDS_RESPONSE = Array
7
+ end