Files
sign/apps/web/pages/api/documents/index.ts

54 lines
1.5 KiB
TypeScript
Raw Normal View History

2023-01-19 16:20:51 +01:00
import { defaultHandler, defaultResponder } from "@documenso/lib/server";
import prisma from "@documenso/prisma";
import { NextApiRequest, NextApiResponse } from "next";
2023-01-20 10:23:40 +01:00
import { getUserFromToken } from "@documenso/lib/server";
2023-01-23 17:57:58 +01:00
import formidable, { Files } from "formidable";
import { getToken } from "next-auth/jwt";
export const config = {
api: {
bodyParser: false,
},
};
2023-01-19 16:20:51 +01:00
2023-01-23 11:39:10 +01:00
// POST /documents
2023-01-19 16:20:51 +01:00
async function postHandler(req: NextApiRequest, res: NextApiResponse) {
2023-01-23 17:57:58 +01:00
const form = formidable();
const user = await getUserFromToken(req, res);
2023-01-20 10:23:40 +01:00
if (!user) return;
2023-01-23 17:57:58 +01:00
form.parse(req, async (err, fields, files) => {
if (err) throw err;
// let uploadedDocument: any = files["document"];
// const path = uploadedDocument[0].filepath;
// const fs = require("fs");
// const buffer = fs.readFileSync(path);
// const documentAsBase64EncodedString = buffer.toString("base64");
2023-01-19 16:20:51 +01:00
2023-01-23 17:57:58 +01:00
const createdDocument = await prisma.$transaction([
prisma.document.create({
data: {
userId: user?.id,
document: "sss",
},
}),
]);
return res.status(201).end(createdDocument);
});
2023-01-19 16:20:51 +01:00
}
async function getHandler(req: NextApiRequest, res: NextApiResponse) {
2023-01-20 10:23:40 +01:00
let user = await getUserFromToken(req, res);
if (!user) return;
2023-01-19 16:20:51 +01:00
return res
.status(200)
.json(await prisma.document.findMany({ where: { userId: user?.id } }));
}
export default defaultHandler({
GET: Promise.resolve({ default: defaultResponder(getHandler) }),
POST: Promise.resolve({ default: defaultResponder(postHandler) }),
});