Started working on the assignments page

This commit is contained in:
Tiago Ribeiro
2024-10-02 19:20:05 +01:00
parent 564e6438cb
commit 3d4a604aa2
25 changed files with 2225 additions and 688 deletions

View File

@@ -4,7 +4,6 @@ import client from "@/lib/mongodb";
import {withIronSessionApiRoute} from "iron-session/next";
import {sessionOptions} from "@/lib/session";
const db = client.db(process.env.MONGODB_DB);
export default withIronSessionApiRoute(handler, sessionOptions);
@@ -25,7 +24,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
async function GET(req: NextApiRequest, res: NextApiResponse) {
const {id} = req.query;
const snapshot = await db.collection("assignments").findOne({ id: id as string });
const snapshot = await db.collection("assignments").findOne({id: id as string});
if (snapshot) {
res.status(200).json({...snapshot, id: snapshot.id});
@@ -35,9 +34,7 @@ async function GET(req: NextApiRequest, res: NextApiResponse) {
async function DELETE(req: NextApiRequest, res: NextApiResponse) {
const {id} = req.query;
await db.collection("assignments").deleteOne(
{ id: id as string }
);
await db.collection("assignments").deleteOne({id});
res.status(200).json({ok: true});
}
@@ -45,10 +42,7 @@ async function DELETE(req: NextApiRequest, res: NextApiResponse) {
async function PATCH(req: NextApiRequest, res: NextApiResponse) {
const {id} = req.query;
await db.collection("assignments").updateOne(
{ id: id as string },
{ $set: {assigner: req.session.user?.id, ...req.body} }
);
await db.collection("assignments").updateOne({id: id as string}, {$set: {assigner: req.session.user?.id, ...req.body}});
res.status(200).json({ok: true});
}

View File

@@ -128,8 +128,10 @@ async function POST(req: NextApiRequest, res: NextApiResponse) {
return;
}
const id = uuidv4();
await db.collection("assignments").insertOne({
id: uuidv4(),
id,
assigner: req.session.user?.id,
assignees,
results: [],
@@ -138,11 +140,10 @@ async function POST(req: NextApiRequest, res: NextApiResponse) {
...body,
});
res.status(200).json({ok: true});
res.status(200).json({ok: true, id});
for (const assigneeID of assignees) {
const assignee = await db.collection("users").findOne<User>({ id: assigneeID });
const assignee = await db.collection("users").findOne<User>({id: assigneeID});
if (!assignee) continue;
const name = body.name;

View File

@@ -45,6 +45,7 @@ async function post(req: NextApiRequest, res: NextApiResponse) {
name: body.name,
admin: body.admin,
participants: body.participants,
entity: body.entity,
});
res.status(200).json({ok: true, id});
}