Skip to main content

Results API - src/pages/api/results/[gameId].ts

GET /api/results/[gameId]. Gets all information needed from the game for results

handler(req: NextApiRequest, res: NextApiResponse): Promise<void>

Method: GET only. Returns 405 for any other method.

Query { gameId } = req.body;

Returns:

    {
problem: {
id: gameRoom.problem.id,
title: gameRoom.problem.title,
description: gameRoom.problem.description,
difficulty: gameRoom.problem.difficulty,
topics: gameRoom.problem.topics,
},
gameType: gameRoom.gameType,
userTeamNumber,
team1Code: gameRoom.gameResult?.team1Code ?? null,
team2Code: gameRoom.gameResult?.team2Code ?? null,

tests: unifiedTestCases,
team1Results: team1ActualOutputs,
team2Results: team2ActualOutputs,
team1PassedCount,
team2PassedCount,
totalTests: unifiedTestCases.length,
team1TotalTests,
team2TotalTests,
team1AverageExecutionTime,
team2AverageExecutionTime,
team1Errors: team1ErrorsArray,
team2Errors: team2ErrorsArray,
team1GameMadeTests,
team2GameMadeTests,
team1TimeLeftSeconds,
team2TimeLeftSeconds,
}

Preconditions:

  • Must be signed in
  • Game must have been created

Error responses:

StatusConditionBody
405Non-GET or Non-PUT request{ error: "Method not allowed" }
401Not authorized{ error: "Not authorized" }
500Failed to create/update database{ message: 'Failed to create game room' }