import { NextApiRequest, NextApiResponse } from "next" const getRawFile = async (req: NextApiRequest, res: NextApiResponse) => { const { id, download } = req.query const file = await fetch(`${process.env.API_URL}/files/raw/${id}`, { headers: { 'Accept': 'text/plain', 'x-secret-key': process.env.SECRET_KEY || '', 'Authorization': `Bearer ${req.cookies['drift-token']}`, } }) res.setHeader("Content-Type", "text/plain") res.setHeader('Cache-Control', 's-maxage=86400'); if (file.ok) { const data = await file.json() const { title, content } = data // serve the file raw as plain text if (download) { res.setHeader("Content-Disposition", `attachment; filename="${title}"`) } else { res.setHeader("Content-Disposition", `inline; filename="${title}"`) } res.status(200).send(content) } else { res.status(404).send("File not found") } } export default getRawFile