Unfinished grading attempt at solving it
This commit is contained in:
@@ -1,34 +1,29 @@
|
||||
import type {NextApiRequest, NextApiResponse} from "next";
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import client from "@/lib/mongodb";
|
||||
import {withIronSessionApiRoute} from "iron-session/next";
|
||||
import {sessionOptions} from "@/lib/session";
|
||||
import { withIronSessionApiRoute } from "iron-session/next";
|
||||
import { sessionOptions } from "@/lib/session";
|
||||
|
||||
const db = client.db(process.env.MONGODB_DB);
|
||||
|
||||
export default withIronSessionApiRoute(handler, sessionOptions);
|
||||
|
||||
async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
if (req.method === "GET") return get(req, res);
|
||||
if (req.method === "GET") return get(req, res);
|
||||
}
|
||||
|
||||
async function get(req: NextApiRequest, res: NextApiResponse) {
|
||||
if (!req.session.user) {
|
||||
res.status(401).json({ok: false});
|
||||
res.status(401).json({ ok: false });
|
||||
return;
|
||||
}
|
||||
|
||||
const {sessionId, userId, exerciseIds} = req.query;
|
||||
const exercises = (exerciseIds! as string).split(',');
|
||||
const finishedEvaluations = await db.collection("evaluation").find({
|
||||
session_id: sessionId,
|
||||
user: userId,
|
||||
$or: [
|
||||
{ status: "completed" },
|
||||
{ status: "error" }
|
||||
],
|
||||
exercise_id: { $in: exercises }
|
||||
}).toArray();
|
||||
const { sessionId, userId } = req.query;
|
||||
|
||||
const finishedExerciseIds = finishedEvaluations.map(evaluation => evaluation.exercise_id);
|
||||
res.status(200).json({ finishedExerciseIds });
|
||||
}
|
||||
const singleEval = await db.collection("evaluation").findOne({
|
||||
session_id: sessionId,
|
||||
user: userId,
|
||||
status: "pending",
|
||||
});
|
||||
|
||||
res.status(200).json({ hasPendingEvaluation: singleEval !== null});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user