diff --git a/apps/web/pages/api/documents/[id].ts b/apps/web/pages/api/documents/[id].ts new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/apps/web/pages/api/documents/[id].ts @@ -0,0 +1 @@ +export {}; diff --git a/apps/web/pages/api/documents/[id]/sign.ts b/apps/web/pages/api/documents/[id]/sign.ts new file mode 100644 index 000000000..7756a90dc --- /dev/null +++ b/apps/web/pages/api/documents/[id]/sign.ts @@ -0,0 +1 @@ +POST for signing (using special body) \ No newline at end of file diff --git a/apps/web/pages/api/documents/index.ts b/apps/web/pages/api/documents/index.ts new file mode 100644 index 000000000..ef7fed41b --- /dev/null +++ b/apps/web/pages/api/documents/index.ts @@ -0,0 +1,49 @@ +import { PrismaClient } from "@documenso/prisma"; +import type { NextApiRequest, NextApiResponse } from "next"; + +export default async function userHandler( + req: NextApiRequest, + res: NextApiResponse +) { + const { method, body } = req; + const prisma = new PrismaClient(); + + // Check Session + + switch (method) { + case "POST": + if (!body.userId) { + res.status(400).end("Owner ID cannot be empty."); + } + + try { + const newDocument: any = await prisma.document + .create({ + data: { userId: body.userId, document: body.document }, + }) + .then(async () => { + await prisma.$disconnect(); + res.status(200).send(newDocument); + }); + } catch (error) { + await prisma.$disconnect(); + res.status(500).end("An error has occured."); + } + + break; + + case "GET": + // GET all docs for user in session + let documents = await prisma.document.findMany({ + where: { + userId: body.userId, + }, + }); + res.status(200).send(documents); + break; + + default: + res.setHeader("Allow", ["GET", "POST"]); + res.status(405).end(`Method ${method} Not Allowed`); + } +} diff --git a/apps/web/pages/api/users/index.ts b/apps/web/pages/api/users/index.ts new file mode 100644 index 000000000..10ad9bfcb --- /dev/null +++ b/apps/web/pages/api/users/index.ts @@ -0,0 +1,42 @@ +// POST to create +import PrismaClient from "@documenso/prisma"; +import User from "@documenso/prisma"; + +import type { NextApiRequest, NextApiResponse } from "next"; +import { json } from "stream/consumers"; + +export default async function userHandler( + req: NextApiRequest, + res: NextApiResponse +) { + const { method, body } = req; + const prisma = new PrismaClient(); + + switch (method) { + case "POST": + if (!body.email) { + res.status(400).end("Email cannot be empty."); + } + + try { + let newUser: any; + newUser = await prisma.user + .create({ + data: { email: body.email }, + }) + .then(async () => { + await prisma.$disconnect(); + res.status(200).send(newUser); + }); + } catch (error) { + await prisma.$disconnect(); + res.status(500).end("An error has occured. Error: " + error); + } + + break; + + default: + res.setHeader("Allow", ["POST"]); + res.status(405).end(`Method ${method} Not Allowed`); + } +}