writeTournamentRecord method

  1. @override
Future<LeaderboardRecord> writeTournamentRecord({
  1. required Session session,
  2. required String tournamentId,
  3. String? metadata,
  4. LeaderboardOperator? operator,
  5. int? score,
  6. int? subscore,
})
override

Submitting scores

Players can submit scores, subscores and metadata to the tournament.

Implementation

@override
Future<model.LeaderboardRecord> writeTournamentRecord({
  required model.Session session,
  required String tournamentId,
  String? metadata,
  LeaderboardOperator? operator,
  int? score,
  int? subscore,
}) async {
  _session = session;

  final res = await _api.v2TournamentTournamentIdPost(
    tournamentId: tournamentId,
    body: WriteTournamentRecordRequestTournamentRecordWrite(
      metadata: metadata,
      score: score?.toString(),
      subscore: subscore?.toString(),
      $operator: () {
        switch (operator) {
          case LeaderboardOperator.best:
            return ApiOperator.best;
          case LeaderboardOperator.decrement:
            return ApiOperator.decrement;
          case LeaderboardOperator.increment:
            return ApiOperator.increment;
          case LeaderboardOperator.noOverride:
            return ApiOperator.noOverride;
          case LeaderboardOperator.set:
            return ApiOperator.$set;
          default:
            return null;
        }
      }(),
    ),
  );

  return model.LeaderboardRecord.fromJson(res.body!.toJson());
}