import { promises } from 'fs' import { NextApiRequest, NextApiResponse } from 'next' import { remove as storeRemove } from '../../../lib/store' import { getPdfPath } from '../../../lib/utils' const handler = async (req: NextApiRequest, res: NextApiResponse) => { const { method } = req switch (req.method) { case 'GET': try { const { query: { id: idArg }, } = req const id = Array.isArray(idArg) ? idArg[0] : idArg const fileContent = await promises.readFile(getPdfPath(id)) res.setHeader('Content-Type', 'application/pdf') res.status(200).send(fileContent) } catch (error) { console.error(error) res.status(404).json({ statusCode: 404, message: 'Method Not Allowed' }) } break case 'DELETE': try { const { query: { id: idArg }, } = req storeRemove(idArg) res.status(202).end() } catch (error) { console.error(error) res.status(404).json({ statusCode: 404, message: 'Method Not Allowed' }) } break default: res.setHeader('Allow', ['GET', 'DELETE']) res.status(405).end(`Method ${method} Not Allowed`) } } export default handler