import type {NextApiRequest, NextApiResponse} from "next"; import {app} from "@/firebase"; import {getFirestore, doc, getDoc, setDoc} from "firebase/firestore"; import {withIronSessionApiRoute} from "iron-session/next"; import {sessionOptions} from "@/lib/session"; const db = getFirestore(app); export default withIronSessionApiRoute(handler, sessionOptions); async function post(req: NextApiRequest, res: NextApiResponse) { // verify if it's a logged user that is trying to archive if (req.session.user) { const {id} = req.query as {id: string}; const docSnap = await getDoc(doc(db, "assignments", id)); if (!docSnap.exists()) { res.status(404).json({ok: false}); return; } await setDoc(docSnap.ref, {archived: false}, {merge: true}); res.status(200).json({ok: true}); return; } res.status(401).json({ok: false}); } async function handler(req: NextApiRequest, res: NextApiResponse) { if (req.method === "POST") return post(req, res); res.status(404).json({ok: false}); }