From 67929655f4744f1b281d706cbfff1b45c500693f Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Tue, 3 Sep 2024 17:00:42 +0100 Subject: [PATCH] Solved some race conditions related to the previous commit --- src/utils/exams.be.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/utils/exams.be.ts b/src/utils/exams.be.ts index bb6a7417..74b6898c 100644 --- a/src/utils/exams.be.ts +++ b/src/utils/exams.be.ts @@ -19,16 +19,18 @@ export const getExams = async ( ): Promise => { const moduleRef = collection(db, module); - const q = query(moduleRef, and(where("isDiagnostic", "==", false), where("private", "!=", true))); + const q = query(moduleRef, where("isDiagnostic", "==", false)); const snapshot = await getDocs(q); - const allExams = shuffle( - snapshot.docs.map((doc) => ({ - id: doc.id, - ...doc.data(), - module, - })), - ) as Exam[]; + const allExams = ( + shuffle( + snapshot.docs.map((doc) => ({ + id: doc.id, + ...doc.data(), + module, + })), + ) as Exam[] + ).filter((x) => !x.private); let exams: Exam[] = await filterByOwners(allExams, userId); exams = filterByVariant(exams, variant); @@ -65,7 +67,7 @@ const filterByVariant = (exams: Exam[], variant?: Variant) => { const filterByOwners = async (exams: Exam[], userID?: string) => { if (!userID) return exams.filter((x) => !x.owners || x.owners.length === 0); - return Promise.all( + return await Promise.all( exams.filter(async (x) => { if (!x.owners) return true; if (x.owners.length === 0) return true;