diff --git a/src/handler/manager/getTournaments.ts b/src/handler/manager/getTournaments.ts index 3d0459f..2e562d5 100644 --- a/src/handler/manager/getTournaments.ts +++ b/src/handler/manager/getTournaments.ts @@ -5,7 +5,7 @@ import { AuthenticatedRequest } from "../../lib/middleware/requireAuth.js"; export const getTournaments = async ( req: AuthenticatedRequest, - res: Response, + res: Response ): Promise => { try { let rows = await prismaClient.tournament.findMany({ @@ -213,6 +213,7 @@ export const getTournaments = async ( } else { count = (await prismaClient.tournament.findMany({})).length; } + let teamTournamentKeys = new Set(); if (req.user.teamNumber) { const teamTournaments = await prismaClient.teamMatchData.groupBy({ by: ["tournamentKey"], @@ -220,9 +221,12 @@ export const getTournaments = async ( teamNumber: req.user.teamNumber, }, }); + teamTournamentKeys = new Set( + teamTournaments.map((obj) => obj.tournamentKey) + ); const presentTeamTournaments = []; for (let i = 0; i < rows.length; i++) { - if (teamTournaments.some((obj) => obj.tournamentKey === rows[i].key)) { + if (teamTournamentKeys.has(rows[i].key)) { presentTeamTournaments.push(rows[i]); rows.splice(i, 1); i--; @@ -230,6 +234,12 @@ export const getTournaments = async ( } rows = presentTeamTournaments.concat(rows); } + + rows = rows.map((row) => ({ + ...row, + isParticipant: teamTournamentKeys.has(row.key), + })); + res.status(200).send({ tournaments: rows, count: count }); } catch (error) { console.error(error);