import type { NextApiRequest, NextApiResponse } from "next"; import getPermission from "@/lib/api/getPermission"; import readFile from "@/lib/api/storage/readFile"; import { getToken } from "next-auth/jwt"; export default async function Index(req: NextApiRequest, res: NextApiResponse) { if (!req.query.params) return res.status(401).json({ response: "Invalid parameters." }); const token = await getToken({ req }); const userId = token?.id; const collectionId = req.query.params[0]; const linkId = req.query.params[1]; const collectionIsAccessible = await getPermission({ userId, collectionId: Number(collectionId), }); if (!collectionIsAccessible) return res .status(401) .json({ response: "You don't have access to this collection." }); const { file, contentType, status } = await readFile( `archives/${collectionId}/${linkId}` ); res.setHeader("Content-Type", contentType).status(status as number); return res.send(file); }