diff --git a/apps/web/pages/api/documents/[id]/send.ts b/apps/web/pages/api/documents/[id]/send.ts index 65be8d786..ff75f455b 100644 --- a/apps/web/pages/api/documents/[id]/send.ts +++ b/apps/web/pages/api/documents/[id]/send.ts @@ -49,6 +49,7 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) { await sendSigningRequestMail(recipient, document); }); + // todo way better error handling return res.status(200).end(); } diff --git a/apps/web/pages/dashboard.tsx b/apps/web/pages/dashboard.tsx index 3c6905afa..ae3b842d4 100644 --- a/apps/web/pages/dashboard.tsx +++ b/apps/web/pages/dashboard.tsx @@ -24,6 +24,7 @@ import { SendStatus, SigningStatus, DocumentStatus, + Document as PrismaDocument, } from "@prisma/client"; import { getUserFromToken } from "@documenso/lib/server"; @@ -156,36 +157,39 @@ export async function getServerSideProps(context: any) { const user = await getUserFromToken(context.req, context.res); if (!user) return; - const drafts = await prisma.document.findMany({ + // todo optimize querys + // todo no intersection groups + + const documents: PrismaDocument[] = await prisma.document.findMany({ where: { userId: user.id, - status: DocumentStatus.DRAFT, }, }); - // todo optimize querys + const drafts: PrismaDocument[] = documents.filter( + (d) => d.status === DocumentStatus.DRAFT + ); + + const completed: PrismaDocument[] = documents.filter( + (d) => d.status === DocumentStatus.COMPLETED + ); const sent = await prisma.recipient.groupBy({ by: ["documentId"], where: { sendStatus: SendStatus.SENT, + readStatus: ReadStatus.NOT_OPENED, }, }); const opened = await prisma.recipient.groupBy({ by: ["documentId"], where: { + sendStatus: SendStatus.SENT, readStatus: ReadStatus.OPENED, }, }); - const completed = await prisma.document.findMany({ - where: { - userId: user.id, - status: DocumentStatus.COMPLETED, - }, - }); - return { props: { dashboard: {