Class: TrophyApiClient::AdminLeaderboard

Inherits:
Object
  • Object
show all
Defined in:
lib/trophy_api_client/types/admin_leaderboard.rb

Overview

A leaderboard returned from the admin leaderboards endpoints.

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id:, name:, key:, status:, rank_by:, max_participants:, start:, breakdown_attributes:, description: OMIT, metric_id: OMIT, points_system_id: OMIT, end_: OMIT, run_unit: OMIT, run_interval: OMIT, additional_properties: nil) ⇒ TrophyApiClient::AdminLeaderboard

Parameters:

  • id (String)

    The UUID of the leaderboard.

  • name (String)

    The leaderboard name.

  • key (String)

    The leaderboard key.

  • description (String) (defaults to: OMIT)

    The leaderboard description.

  • status (TrophyApiClient::AdminLeaderboardStatus)

    The current user-facing status of the leaderboard.

  • rank_by (TrophyApiClient::AdminLeaderboardRankBy)

    What the leaderboard ranks by.

  • metric_id (String) (defaults to: OMIT)

    The metric ID used when ‘rankBy` is `metric`.

  • points_system_id (String) (defaults to: OMIT)

    The points system ID used when ‘rankBy` is `points`.

  • max_participants (Integer)

    The maximum number of participants.

  • start (String)

    The leaderboard start date in YYYY-MM-DD format.

  • end_ (String) (defaults to: OMIT)

    The optional leaderboard end date in YYYY-MM-DD format.

  • breakdown_attributes (Array<String>)

    The UUIDs of the user attributes used for ranking breakdowns.

  • run_unit (TrophyApiClient::AdminLeaderboardRunUnit) (defaults to: OMIT)

    The recurrence unit when the leaderboard repeats.

  • run_interval (Integer) (defaults to: OMIT)

    The number of recurrence units between leaderboard runs.

  • additional_properties (OpenStruct) (defaults to: nil)

    Additional properties unmapped to the current class definition



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 64

def initialize(id:, name:, key:, status:, rank_by:, max_participants:, start:, breakdown_attributes:,
               description: OMIT, metric_id: OMIT, points_system_id: OMIT, end_: OMIT, run_unit: OMIT, run_interval: OMIT, additional_properties: nil)
  @id = id
  @name = name
  @key = key
  @description = description if description != OMIT
  @status = status
  @rank_by = rank_by
  @metric_id = metric_id if metric_id != OMIT
  @points_system_id = points_system_id if points_system_id != OMIT
  @max_participants = max_participants
  @start = start
  @end_ = end_ if end_ != OMIT
  @breakdown_attributes = breakdown_attributes
  @run_unit = run_unit if run_unit != OMIT
  @run_interval = run_interval if run_interval != OMIT
  @additional_properties = additional_properties
  @_field_set = {
    "id": id,
    "name": name,
    "key": key,
    "description": description,
    "status": status,
    "rankBy": rank_by,
    "metricId": metric_id,
    "pointsSystemId": points_system_id,
    "maxParticipants": max_participants,
    "start": start,
    "end": end_,
    "breakdownAttributes": breakdown_attributes,
    "runUnit": run_unit,
    "runInterval": run_interval
  }.reject do |_k, v|
    v == OMIT
  end
end

Instance Attribute Details

#additional_propertiesOpenStruct (readonly)

Returns Additional properties unmapped to the current class definition.

Returns:

  • (OpenStruct)

    Additional properties unmapped to the current class definition



41
42
43
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 41

def additional_properties
  @additional_properties
end

#breakdown_attributesArray<String> (readonly)

Returns The UUIDs of the user attributes used for ranking breakdowns.

Returns:

  • (Array<String>)

    The UUIDs of the user attributes used for ranking breakdowns.



35
36
37
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 35

def breakdown_attributes
  @breakdown_attributes
end

#descriptionString (readonly)

Returns The leaderboard description.

Returns:

  • (String)

    The leaderboard description.



19
20
21
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 19

def description
  @description
end

#end_String (readonly)

Returns The optional leaderboard end date in YYYY-MM-DD format.

Returns:

  • (String)

    The optional leaderboard end date in YYYY-MM-DD format.



33
34
35
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 33

def end_
  @end_
end

#idString (readonly)

Returns The UUID of the leaderboard.

Returns:

  • (String)

    The UUID of the leaderboard.



13
14
15
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 13

def id
  @id
end

#keyString (readonly)

Returns The leaderboard key.

Returns:

  • (String)

    The leaderboard key.



17
18
19
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 17

def key
  @key
end

#max_participantsInteger (readonly)

Returns The maximum number of participants.

Returns:

  • (Integer)

    The maximum number of participants.



29
30
31
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 29

def max_participants
  @max_participants
end

#metric_idString (readonly)

Returns The metric ID used when ‘rankBy` is `metric`.

Returns:

  • (String)

    The metric ID used when ‘rankBy` is `metric`.



25
26
27
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 25

def metric_id
  @metric_id
end

#nameString (readonly)

Returns The leaderboard name.

Returns:

  • (String)

    The leaderboard name.



15
16
17
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 15

def name
  @name
end

#points_system_idString (readonly)

Returns The points system ID used when ‘rankBy` is `points`.

Returns:

  • (String)

    The points system ID used when ‘rankBy` is `points`.



27
28
29
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 27

def points_system_id
  @points_system_id
end

#rank_byTrophyApiClient::AdminLeaderboardRankBy (readonly)

Returns What the leaderboard ranks by.

Returns:



23
24
25
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 23

def rank_by
  @rank_by
end

#run_intervalInteger (readonly)

Returns The number of recurrence units between leaderboard runs.

Returns:

  • (Integer)

    The number of recurrence units between leaderboard runs.



39
40
41
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 39

def run_interval
  @run_interval
end

#run_unitTrophyApiClient::AdminLeaderboardRunUnit (readonly)

Returns The recurrence unit when the leaderboard repeats.

Returns:



37
38
39
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 37

def run_unit
  @run_unit
end

#startString (readonly)

Returns The leaderboard start date in YYYY-MM-DD format.

Returns:

  • (String)

    The leaderboard start date in YYYY-MM-DD format.



31
32
33
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 31

def start
  @start
end

#statusTrophyApiClient::AdminLeaderboardStatus (readonly)

Returns The current user-facing status of the leaderboard.

Returns:



21
22
23
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 21

def status
  @status
end

Class Method Details

.from_json(json_object:) ⇒ TrophyApiClient::AdminLeaderboard

Deserialize a JSON object to an instance of AdminLeaderboard

Parameters:

  • json_object (String)

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 105

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  id = parsed_json["id"]
  name = parsed_json["name"]
  key = parsed_json["key"]
  description = parsed_json["description"]
  status = parsed_json["status"]
  rank_by = parsed_json["rankBy"]
  metric_id = parsed_json["metricId"]
  points_system_id = parsed_json["pointsSystemId"]
  max_participants = parsed_json["maxParticipants"]
  start = parsed_json["start"]
  end_ = parsed_json["end"]
  breakdown_attributes = parsed_json["breakdownAttributes"]
  run_unit = parsed_json["runUnit"]
  run_interval = parsed_json["runInterval"]
  new(
    id: id,
    name: name,
    key: key,
    description: description,
    status: status,
    rank_by: rank_by,
    metric_id: metric_id,
    points_system_id: points_system_id,
    max_participants: max_participants,
    start: start,
    end_: end_,
    breakdown_attributes: breakdown_attributes,
    run_unit: run_unit,
    run_interval: run_interval,
    additional_properties: struct
  )
end

.validate_raw(obj:) ⇒ Void

Leveraged for Union-type generation, validate_raw attempts to parse the given

hash and check each fields type against the current object's property
definitions.

Parameters:

  • obj (Object)

Returns:

  • (Void)


154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 154

def self.validate_raw(obj:)
  obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
  obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
  obj.key.is_a?(String) != false || raise("Passed value for field obj.key is not the expected type, validation failed.")
  obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
  obj.status.is_a?(TrophyApiClient::AdminLeaderboardStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
  obj.rank_by.is_a?(TrophyApiClient::AdminLeaderboardRankBy) != false || raise("Passed value for field obj.rank_by is not the expected type, validation failed.")
  obj.metric_id&.is_a?(String) != false || raise("Passed value for field obj.metric_id is not the expected type, validation failed.")
  obj.points_system_id&.is_a?(String) != false || raise("Passed value for field obj.points_system_id is not the expected type, validation failed.")
  obj.max_participants.is_a?(Integer) != false || raise("Passed value for field obj.max_participants is not the expected type, validation failed.")
  obj.start.is_a?(String) != false || raise("Passed value for field obj.start is not the expected type, validation failed.")
  obj.end_&.is_a?(String) != false || raise("Passed value for field obj.end_ is not the expected type, validation failed.")
  obj.breakdown_attributes.is_a?(Array) != false || raise("Passed value for field obj.breakdown_attributes is not the expected type, validation failed.")
  obj.run_unit&.is_a?(TrophyApiClient::AdminLeaderboardRunUnit) != false || raise("Passed value for field obj.run_unit is not the expected type, validation failed.")
  obj.run_interval&.is_a?(Integer) != false || raise("Passed value for field obj.run_interval is not the expected type, validation failed.")
end

Instance Method Details

#to_json(*_args) ⇒ String

Serialize an instance of AdminLeaderboard to a JSON object

Returns:

  • (String)


144
145
146
# File 'lib/trophy_api_client/types/admin_leaderboard.rb', line 144

def to_json(*_args)
  @_field_set&.to_json
end