From 38436085fe8a52afa52027a9f3301d95f7c145b9 Mon Sep 17 00:00:00 2001 From: Manan Gandhi Date: Thu, 31 Oct 2024 21:56:12 +0530 Subject: [PATCH] [backend] Check if problem is solved when fetching problem statement --- backend/handlers/problem-statement.js | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/backend/handlers/problem-statement.js b/backend/handlers/problem-statement.js index 617ad09..8e7994b 100644 --- a/backend/handlers/problem-statement.js +++ b/backend/handlers/problem-statement.js @@ -41,16 +41,26 @@ const getProblemStatementByIdHandler = async (req, res) => { }); } const { withHidden } = req.query; - const problemStatement = await prisma.problemStatement.findUnique({ + var problemStatement = await prisma.problemStatement.findUnique({ where: { id: problemStatementId }, - include: - withHidden && req.user.admin - ? { testCase: true } - : { - testCase: { + include: { + testCase: + withHidden && req.user.admin + ? true + : { where: { hidden: false }, }, - }, + _count: { + select: { + submissions: { + where: { + userId: req.user.id, + success: true, + }, + }, + }, + }, + }, }); if (!problemStatement) { return res.status(404).json({ @@ -59,6 +69,8 @@ const getProblemStatementByIdHandler = async (req, res) => { data: null, }); } + problemStatement.solved = problemStatement._count.submissions > 0; + problemStatement._count = undefined; res.json({ success: true, message: "Fetched problem statement",