trophy_api_client 1.0.29 → 1.0.30

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gemconfig.rb +1 -1
  3. data/lib/trophy_api_client/achievements/client.rb +2 -2
  4. data/lib/trophy_api_client/leaderboards/client.rb +9 -5
  5. data/lib/trophy_api_client/leaderboards/types/leaderboards_all_response_item.rb +186 -0
  6. data/lib/trophy_api_client/leaderboards/types/leaderboards_all_response_item_status.rb +12 -0
  7. data/lib/trophy_api_client/metrics/client.rb +2 -2
  8. data/lib/trophy_api_client/streaks/client.rb +2 -2
  9. data/lib/trophy_api_client/types/achievement_completion_response.rb +9 -11
  10. data/lib/trophy_api_client/types/achievement_completion_response_achievement.rb +171 -0
  11. data/lib/trophy_api_client/types/achievement_response.rb +5 -19
  12. data/lib/trophy_api_client/types/achievement_with_stats_response.rb +9 -23
  13. data/lib/trophy_api_client/types/bulk_streak_response_item.rb +4 -6
  14. data/lib/trophy_api_client/types/completed_achievement_response.rb +7 -21
  15. data/lib/trophy_api_client/types/event_response.rb +10 -10
  16. data/lib/trophy_api_client/types/get_user_points_response.rb +21 -4
  17. data/lib/trophy_api_client/types/leaderboard_response.rb +8 -16
  18. data/lib/trophy_api_client/types/leaderboard_response_run_unit.rb +11 -0
  19. data/lib/trophy_api_client/types/leaderboard_response_with_rankings.rb +17 -16
  20. data/lib/trophy_api_client/types/{leaderboard_response_status.rb → leaderboard_response_with_rankings_status.rb} +1 -1
  21. data/lib/trophy_api_client/types/metric_event_leaderboard_response.rb +11 -19
  22. data/lib/trophy_api_client/types/metric_event_points_response.rb +24 -8
  23. data/lib/trophy_api_client/types/metric_event_streak_response.rb +4 -4
  24. data/lib/trophy_api_client/types/points_award.rb +6 -6
  25. data/lib/trophy_api_client/types/points_range.rb +14 -16
  26. data/lib/trophy_api_client/types/points_system_response.rb +10 -1
  27. data/lib/trophy_api_client/types/points_trigger.rb +30 -11
  28. data/lib/trophy_api_client/types/points_trigger_response.rb +39 -22
  29. data/lib/trophy_api_client/types/points_trigger_response_time_unit.rb +9 -0
  30. data/lib/trophy_api_client/types/points_trigger_response_type.rb +2 -0
  31. data/lib/trophy_api_client/types/points_trigger_time_unit.rb +9 -0
  32. data/lib/trophy_api_client/types/points_trigger_type.rb +2 -0
  33. data/lib/trophy_api_client/types/updated_user.rb +11 -11
  34. data/lib/trophy_api_client/types/upserted_user.rb +12 -12
  35. data/lib/trophy_api_client/types/user.rb +18 -18
  36. data/lib/trophy_api_client/types/user_leaderboard_response.rb +8 -28
  37. data/lib/trophy_api_client/types/user_leaderboard_response_with_history.rb +208 -0
  38. data/lib/trophy_api_client/types/webhook_user_leaderboard_response.rb +212 -0
  39. data/lib/trophy_api_client/types/webhooks_achievement_completed_payload.rb +84 -0
  40. data/lib/trophy_api_client/types/webhooks_leaderboard_changed_payload.rb +71 -0
  41. data/lib/trophy_api_client/types/webhooks_leaderboard_finished_payload.rb +71 -0
  42. data/lib/trophy_api_client/types/webhooks_leaderboard_rank_changed_payload.rb +85 -0
  43. data/lib/trophy_api_client/types/webhooks_leaderboard_started_payload.rb +71 -0
  44. data/lib/trophy_api_client/types/webhooks_points_changed_payload.rb +84 -0
  45. data/lib/trophy_api_client/types/webhooks_streak_extended_payload.rb +84 -0
  46. data/lib/trophy_api_client/types/webhooks_streak_freeze_consumed_payload.rb +85 -0
  47. data/lib/trophy_api_client/types/webhooks_streak_freeze_earned_payload.rb +85 -0
  48. data/lib/trophy_api_client/types/webhooks_streak_lost_payload.rb +78 -0
  49. data/lib/trophy_api_client/types/webhooks_streak_started_payload.rb +84 -0
  50. data/lib/trophy_api_client/users/client.rb +25 -17
  51. data/lib/trophy_api_client/version.rb +1 -1
  52. data/lib/types_export.rb +20 -1
  53. metadata +21 -2
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "user"
4
+ require_relative "webhook_user_leaderboard_response"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module TrophyApiClient
9
+ class WebhooksLeaderboardRankChangedPayload
10
+ # @return [String] The webhook event type.
11
+ attr_reader :type
12
+ # @return [TrophyApiClient::User] The user whose rank changed.
13
+ attr_reader :user
14
+ # @return [TrophyApiClient::WebhookUserLeaderboardResponse] The user's leaderboard data that changed.
15
+ attr_reader :leaderboard
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 type [String] The webhook event type.
25
+ # @param user [TrophyApiClient::User] The user whose rank changed.
26
+ # @param leaderboard [TrophyApiClient::WebhookUserLeaderboardResponse] The user's leaderboard data that changed.
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [TrophyApiClient::WebhooksLeaderboardRankChangedPayload]
29
+ def initialize(type:, user:, leaderboard:, additional_properties: nil)
30
+ @type = type
31
+ @user = user
32
+ @leaderboard = leaderboard
33
+ @additional_properties = additional_properties
34
+ @_field_set = { "type": type, "user": user, "leaderboard": leaderboard }
35
+ end
36
+
37
+ # Deserialize a JSON object to an instance of
38
+ # WebhooksLeaderboardRankChangedPayload
39
+ #
40
+ # @param json_object [String]
41
+ # @return [TrophyApiClient::WebhooksLeaderboardRankChangedPayload]
42
+ def self.from_json(json_object:)
43
+ struct = JSON.parse(json_object, object_class: OpenStruct)
44
+ parsed_json = JSON.parse(json_object)
45
+ type = parsed_json["type"]
46
+ if parsed_json["user"].nil?
47
+ user = nil
48
+ else
49
+ user = parsed_json["user"].to_json
50
+ user = TrophyApiClient::User.from_json(json_object: user)
51
+ end
52
+ if parsed_json["leaderboard"].nil?
53
+ leaderboard = nil
54
+ else
55
+ leaderboard = parsed_json["leaderboard"].to_json
56
+ leaderboard = TrophyApiClient::WebhookUserLeaderboardResponse.from_json(json_object: leaderboard)
57
+ end
58
+ new(
59
+ type: type,
60
+ user: user,
61
+ leaderboard: leaderboard,
62
+ additional_properties: struct
63
+ )
64
+ end
65
+
66
+ # Serialize an instance of WebhooksLeaderboardRankChangedPayload to a JSON object
67
+ #
68
+ # @return [String]
69
+ def to_json(*_args)
70
+ @_field_set&.to_json
71
+ end
72
+
73
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
74
+ # hash and check each fields type against the current object's property
75
+ # definitions.
76
+ #
77
+ # @param obj [Object]
78
+ # @return [Void]
79
+ def self.validate_raw(obj:)
80
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
81
+ TrophyApiClient::User.validate_raw(obj: obj.user)
82
+ TrophyApiClient::WebhookUserLeaderboardResponse.validate_raw(obj: obj.leaderboard)
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "leaderboard_response_with_rankings"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module TrophyApiClient
8
+ class WebhooksLeaderboardStartedPayload
9
+ # @return [String] The webhook event type.
10
+ attr_reader :type
11
+ # @return [TrophyApiClient::LeaderboardResponseWithRankings] The leaderboard run that started and its initial rankings.
12
+ attr_reader :leaderboard
13
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
14
+ attr_reader :additional_properties
15
+ # @return [Object]
16
+ attr_reader :_field_set
17
+ protected :_field_set
18
+
19
+ OMIT = Object.new
20
+
21
+ # @param type [String] The webhook event type.
22
+ # @param leaderboard [TrophyApiClient::LeaderboardResponseWithRankings] The leaderboard run that started and its initial rankings.
23
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
24
+ # @return [TrophyApiClient::WebhooksLeaderboardStartedPayload]
25
+ def initialize(type:, leaderboard:, additional_properties: nil)
26
+ @type = type
27
+ @leaderboard = leaderboard
28
+ @additional_properties = additional_properties
29
+ @_field_set = { "type": type, "leaderboard": leaderboard }
30
+ end
31
+
32
+ # Deserialize a JSON object to an instance of WebhooksLeaderboardStartedPayload
33
+ #
34
+ # @param json_object [String]
35
+ # @return [TrophyApiClient::WebhooksLeaderboardStartedPayload]
36
+ def self.from_json(json_object:)
37
+ struct = JSON.parse(json_object, object_class: OpenStruct)
38
+ parsed_json = JSON.parse(json_object)
39
+ type = parsed_json["type"]
40
+ if parsed_json["leaderboard"].nil?
41
+ leaderboard = nil
42
+ else
43
+ leaderboard = parsed_json["leaderboard"].to_json
44
+ leaderboard = TrophyApiClient::LeaderboardResponseWithRankings.from_json(json_object: leaderboard)
45
+ end
46
+ new(
47
+ type: type,
48
+ leaderboard: leaderboard,
49
+ additional_properties: struct
50
+ )
51
+ end
52
+
53
+ # Serialize an instance of WebhooksLeaderboardStartedPayload to a JSON object
54
+ #
55
+ # @return [String]
56
+ def to_json(*_args)
57
+ @_field_set&.to_json
58
+ end
59
+
60
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
61
+ # hash and check each fields type against the current object's property
62
+ # definitions.
63
+ #
64
+ # @param obj [Object]
65
+ # @return [Void]
66
+ def self.validate_raw(obj:)
67
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
68
+ TrophyApiClient::LeaderboardResponseWithRankings.validate_raw(obj: obj.leaderboard)
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "user"
4
+ require_relative "get_user_points_response"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module TrophyApiClient
9
+ class WebhooksPointsChangedPayload
10
+ # @return [String] The webhook event type.
11
+ attr_reader :type
12
+ # @return [TrophyApiClient::User] The user whose points increased or decreased.
13
+ attr_reader :user
14
+ # @return [TrophyApiClient::GetUserPointsResponse] The user's points after the event.
15
+ attr_reader :points
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 type [String] The webhook event type.
25
+ # @param user [TrophyApiClient::User] The user whose points increased or decreased.
26
+ # @param points [TrophyApiClient::GetUserPointsResponse] The user's points after the event.
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [TrophyApiClient::WebhooksPointsChangedPayload]
29
+ def initialize(type:, user:, points:, additional_properties: nil)
30
+ @type = type
31
+ @user = user
32
+ @points = points
33
+ @additional_properties = additional_properties
34
+ @_field_set = { "type": type, "user": user, "points": points }
35
+ end
36
+
37
+ # Deserialize a JSON object to an instance of WebhooksPointsChangedPayload
38
+ #
39
+ # @param json_object [String]
40
+ # @return [TrophyApiClient::WebhooksPointsChangedPayload]
41
+ def self.from_json(json_object:)
42
+ struct = JSON.parse(json_object, object_class: OpenStruct)
43
+ parsed_json = JSON.parse(json_object)
44
+ type = parsed_json["type"]
45
+ if parsed_json["user"].nil?
46
+ user = nil
47
+ else
48
+ user = parsed_json["user"].to_json
49
+ user = TrophyApiClient::User.from_json(json_object: user)
50
+ end
51
+ if parsed_json["points"].nil?
52
+ points = nil
53
+ else
54
+ points = parsed_json["points"].to_json
55
+ points = TrophyApiClient::GetUserPointsResponse.from_json(json_object: points)
56
+ end
57
+ new(
58
+ type: type,
59
+ user: user,
60
+ points: points,
61
+ additional_properties: struct
62
+ )
63
+ end
64
+
65
+ # Serialize an instance of WebhooksPointsChangedPayload to a JSON object
66
+ #
67
+ # @return [String]
68
+ def to_json(*_args)
69
+ @_field_set&.to_json
70
+ end
71
+
72
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
73
+ # hash and check each fields type against the current object's property
74
+ # definitions.
75
+ #
76
+ # @param obj [Object]
77
+ # @return [Void]
78
+ def self.validate_raw(obj:)
79
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
80
+ TrophyApiClient::User.validate_raw(obj: obj.user)
81
+ TrophyApiClient::GetUserPointsResponse.validate_raw(obj: obj.points)
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "user"
4
+ require_relative "base_streak_response"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module TrophyApiClient
9
+ class WebhooksStreakExtendedPayload
10
+ # @return [String] The webhook event type.
11
+ attr_reader :type
12
+ # @return [TrophyApiClient::User] The user who extended the streak.
13
+ attr_reader :user
14
+ # @return [TrophyApiClient::BaseStreakResponse] The streak that was extended.
15
+ attr_reader :streak
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 type [String] The webhook event type.
25
+ # @param user [TrophyApiClient::User] The user who extended the streak.
26
+ # @param streak [TrophyApiClient::BaseStreakResponse] The streak that was extended.
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [TrophyApiClient::WebhooksStreakExtendedPayload]
29
+ def initialize(type:, user:, streak:, additional_properties: nil)
30
+ @type = type
31
+ @user = user
32
+ @streak = streak
33
+ @additional_properties = additional_properties
34
+ @_field_set = { "type": type, "user": user, "streak": streak }
35
+ end
36
+
37
+ # Deserialize a JSON object to an instance of WebhooksStreakExtendedPayload
38
+ #
39
+ # @param json_object [String]
40
+ # @return [TrophyApiClient::WebhooksStreakExtendedPayload]
41
+ def self.from_json(json_object:)
42
+ struct = JSON.parse(json_object, object_class: OpenStruct)
43
+ parsed_json = JSON.parse(json_object)
44
+ type = parsed_json["type"]
45
+ if parsed_json["user"].nil?
46
+ user = nil
47
+ else
48
+ user = parsed_json["user"].to_json
49
+ user = TrophyApiClient::User.from_json(json_object: user)
50
+ end
51
+ if parsed_json["streak"].nil?
52
+ streak = nil
53
+ else
54
+ streak = parsed_json["streak"].to_json
55
+ streak = TrophyApiClient::BaseStreakResponse.from_json(json_object: streak)
56
+ end
57
+ new(
58
+ type: type,
59
+ user: user,
60
+ streak: streak,
61
+ additional_properties: struct
62
+ )
63
+ end
64
+
65
+ # Serialize an instance of WebhooksStreakExtendedPayload to a JSON object
66
+ #
67
+ # @return [String]
68
+ def to_json(*_args)
69
+ @_field_set&.to_json
70
+ end
71
+
72
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
73
+ # hash and check each fields type against the current object's property
74
+ # definitions.
75
+ #
76
+ # @param obj [Object]
77
+ # @return [Void]
78
+ def self.validate_raw(obj:)
79
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
80
+ TrophyApiClient::User.validate_raw(obj: obj.user)
81
+ TrophyApiClient::BaseStreakResponse.validate_raw(obj: obj.streak)
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "user"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module TrophyApiClient
8
+ class WebhooksStreakFreezeConsumedPayload
9
+ # @return [String] The webhook event type.
10
+ attr_reader :type
11
+ # @return [TrophyApiClient::User] The user whose streak freeze was consumed.
12
+ attr_reader :user
13
+ # @return [Integer] The number of freezes consumed.
14
+ attr_reader :consumed
15
+ # @return [Integer] The total number of freezes the user has left after the consumption.
16
+ attr_reader :freezes
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param type [String] The webhook event type.
26
+ # @param user [TrophyApiClient::User] The user whose streak freeze was consumed.
27
+ # @param consumed [Integer] The number of freezes consumed.
28
+ # @param freezes [Integer] The total number of freezes the user has left after the consumption.
29
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
30
+ # @return [TrophyApiClient::WebhooksStreakFreezeConsumedPayload]
31
+ def initialize(type:, user:, consumed:, freezes:, additional_properties: nil)
32
+ @type = type
33
+ @user = user
34
+ @consumed = consumed
35
+ @freezes = freezes
36
+ @additional_properties = additional_properties
37
+ @_field_set = { "type": type, "user": user, "consumed": consumed, "freezes": freezes }
38
+ end
39
+
40
+ # Deserialize a JSON object to an instance of WebhooksStreakFreezeConsumedPayload
41
+ #
42
+ # @param json_object [String]
43
+ # @return [TrophyApiClient::WebhooksStreakFreezeConsumedPayload]
44
+ def self.from_json(json_object:)
45
+ struct = JSON.parse(json_object, object_class: OpenStruct)
46
+ parsed_json = JSON.parse(json_object)
47
+ type = parsed_json["type"]
48
+ if parsed_json["user"].nil?
49
+ user = nil
50
+ else
51
+ user = parsed_json["user"].to_json
52
+ user = TrophyApiClient::User.from_json(json_object: user)
53
+ end
54
+ consumed = parsed_json["consumed"]
55
+ freezes = parsed_json["freezes"]
56
+ new(
57
+ type: type,
58
+ user: user,
59
+ consumed: consumed,
60
+ freezes: freezes,
61
+ additional_properties: struct
62
+ )
63
+ end
64
+
65
+ # Serialize an instance of WebhooksStreakFreezeConsumedPayload to a JSON object
66
+ #
67
+ # @return [String]
68
+ def to_json(*_args)
69
+ @_field_set&.to_json
70
+ end
71
+
72
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
73
+ # hash and check each fields type against the current object's property
74
+ # definitions.
75
+ #
76
+ # @param obj [Object]
77
+ # @return [Void]
78
+ def self.validate_raw(obj:)
79
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
80
+ TrophyApiClient::User.validate_raw(obj: obj.user)
81
+ obj.consumed.is_a?(Integer) != false || raise("Passed value for field obj.consumed is not the expected type, validation failed.")
82
+ obj.freezes.is_a?(Integer) != false || raise("Passed value for field obj.freezes is not the expected type, validation failed.")
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "user"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module TrophyApiClient
8
+ class WebhooksStreakFreezeEarnedPayload
9
+ # @return [String] The webhook event type.
10
+ attr_reader :type
11
+ # @return [TrophyApiClient::User] The user who earned streak freezes.
12
+ attr_reader :user
13
+ # @return [Integer] The number of freezes earned.
14
+ attr_reader :earned
15
+ # @return [Integer] The total number of freezes the user has after the event.
16
+ attr_reader :freezes
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param type [String] The webhook event type.
26
+ # @param user [TrophyApiClient::User] The user who earned streak freezes.
27
+ # @param earned [Integer] The number of freezes earned.
28
+ # @param freezes [Integer] The total number of freezes the user has after the event.
29
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
30
+ # @return [TrophyApiClient::WebhooksStreakFreezeEarnedPayload]
31
+ def initialize(type:, user:, earned:, freezes:, additional_properties: nil)
32
+ @type = type
33
+ @user = user
34
+ @earned = earned
35
+ @freezes = freezes
36
+ @additional_properties = additional_properties
37
+ @_field_set = { "type": type, "user": user, "earned": earned, "freezes": freezes }
38
+ end
39
+
40
+ # Deserialize a JSON object to an instance of WebhooksStreakFreezeEarnedPayload
41
+ #
42
+ # @param json_object [String]
43
+ # @return [TrophyApiClient::WebhooksStreakFreezeEarnedPayload]
44
+ def self.from_json(json_object:)
45
+ struct = JSON.parse(json_object, object_class: OpenStruct)
46
+ parsed_json = JSON.parse(json_object)
47
+ type = parsed_json["type"]
48
+ if parsed_json["user"].nil?
49
+ user = nil
50
+ else
51
+ user = parsed_json["user"].to_json
52
+ user = TrophyApiClient::User.from_json(json_object: user)
53
+ end
54
+ earned = parsed_json["earned"]
55
+ freezes = parsed_json["freezes"]
56
+ new(
57
+ type: type,
58
+ user: user,
59
+ earned: earned,
60
+ freezes: freezes,
61
+ additional_properties: struct
62
+ )
63
+ end
64
+
65
+ # Serialize an instance of WebhooksStreakFreezeEarnedPayload to a JSON object
66
+ #
67
+ # @return [String]
68
+ def to_json(*_args)
69
+ @_field_set&.to_json
70
+ end
71
+
72
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
73
+ # hash and check each fields type against the current object's property
74
+ # definitions.
75
+ #
76
+ # @param obj [Object]
77
+ # @return [Void]
78
+ def self.validate_raw(obj:)
79
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
80
+ TrophyApiClient::User.validate_raw(obj: obj.user)
81
+ obj.earned.is_a?(Integer) != false || raise("Passed value for field obj.earned is not the expected type, validation failed.")
82
+ obj.freezes.is_a?(Integer) != false || raise("Passed value for field obj.freezes is not the expected type, validation failed.")
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "user"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module TrophyApiClient
8
+ class WebhooksStreakLostPayload
9
+ # @return [String] The webhook event type.
10
+ attr_reader :type
11
+ # @return [TrophyApiClient::User] The user who lost the streak.
12
+ attr_reader :user
13
+ # @return [Integer] The length of the streak that was lost.
14
+ attr_reader :length
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 type [String] The webhook event type.
24
+ # @param user [TrophyApiClient::User] The user who lost the streak.
25
+ # @param length [Integer] The length of the streak that was lost.
26
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
27
+ # @return [TrophyApiClient::WebhooksStreakLostPayload]
28
+ def initialize(type:, user:, length:, additional_properties: nil)
29
+ @type = type
30
+ @user = user
31
+ @length = length
32
+ @additional_properties = additional_properties
33
+ @_field_set = { "type": type, "user": user, "length": length }
34
+ end
35
+
36
+ # Deserialize a JSON object to an instance of WebhooksStreakLostPayload
37
+ #
38
+ # @param json_object [String]
39
+ # @return [TrophyApiClient::WebhooksStreakLostPayload]
40
+ def self.from_json(json_object:)
41
+ struct = JSON.parse(json_object, object_class: OpenStruct)
42
+ parsed_json = JSON.parse(json_object)
43
+ type = parsed_json["type"]
44
+ if parsed_json["user"].nil?
45
+ user = nil
46
+ else
47
+ user = parsed_json["user"].to_json
48
+ user = TrophyApiClient::User.from_json(json_object: user)
49
+ end
50
+ length = parsed_json["length"]
51
+ new(
52
+ type: type,
53
+ user: user,
54
+ length: length,
55
+ additional_properties: struct
56
+ )
57
+ end
58
+
59
+ # Serialize an instance of WebhooksStreakLostPayload to a JSON object
60
+ #
61
+ # @return [String]
62
+ def to_json(*_args)
63
+ @_field_set&.to_json
64
+ end
65
+
66
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
67
+ # hash and check each fields type against the current object's property
68
+ # definitions.
69
+ #
70
+ # @param obj [Object]
71
+ # @return [Void]
72
+ def self.validate_raw(obj:)
73
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
74
+ TrophyApiClient::User.validate_raw(obj: obj.user)
75
+ obj.length.is_a?(Integer) != false || raise("Passed value for field obj.length is not the expected type, validation failed.")
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "user"
4
+ require_relative "base_streak_response"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module TrophyApiClient
9
+ class WebhooksStreakStartedPayload
10
+ # @return [String] The webhook event type.
11
+ attr_reader :type
12
+ # @return [TrophyApiClient::User] The user who started the streak.
13
+ attr_reader :user
14
+ # @return [TrophyApiClient::BaseStreakResponse] The streak that was started.
15
+ attr_reader :streak
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 type [String] The webhook event type.
25
+ # @param user [TrophyApiClient::User] The user who started the streak.
26
+ # @param streak [TrophyApiClient::BaseStreakResponse] The streak that was started.
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [TrophyApiClient::WebhooksStreakStartedPayload]
29
+ def initialize(type:, user:, streak:, additional_properties: nil)
30
+ @type = type
31
+ @user = user
32
+ @streak = streak
33
+ @additional_properties = additional_properties
34
+ @_field_set = { "type": type, "user": user, "streak": streak }
35
+ end
36
+
37
+ # Deserialize a JSON object to an instance of WebhooksStreakStartedPayload
38
+ #
39
+ # @param json_object [String]
40
+ # @return [TrophyApiClient::WebhooksStreakStartedPayload]
41
+ def self.from_json(json_object:)
42
+ struct = JSON.parse(json_object, object_class: OpenStruct)
43
+ parsed_json = JSON.parse(json_object)
44
+ type = parsed_json["type"]
45
+ if parsed_json["user"].nil?
46
+ user = nil
47
+ else
48
+ user = parsed_json["user"].to_json
49
+ user = TrophyApiClient::User.from_json(json_object: user)
50
+ end
51
+ if parsed_json["streak"].nil?
52
+ streak = nil
53
+ else
54
+ streak = parsed_json["streak"].to_json
55
+ streak = TrophyApiClient::BaseStreakResponse.from_json(json_object: streak)
56
+ end
57
+ new(
58
+ type: type,
59
+ user: user,
60
+ streak: streak,
61
+ additional_properties: struct
62
+ )
63
+ end
64
+
65
+ # Serialize an instance of WebhooksStreakStartedPayload to a JSON object
66
+ #
67
+ # @return [String]
68
+ def to_json(*_args)
69
+ @_field_set&.to_json
70
+ end
71
+
72
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
73
+ # hash and check each fields type against the current object's property
74
+ # definitions.
75
+ #
76
+ # @param obj [Object]
77
+ # @return [Void]
78
+ def self.validate_raw(obj:)
79
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
80
+ TrophyApiClient::User.validate_raw(obj: obj.user)
81
+ TrophyApiClient::BaseStreakResponse.validate_raw(obj: obj.streak)
82
+ end
83
+ end
84
+ end