metrics performance and correctness

This commit is contained in:
Timur Ercan
2023-01-27 20:49:06 +01:00
parent adc34ac282
commit ae2a1c481a
2 changed files with 15 additions and 10 deletions

View File

@ -49,6 +49,7 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) {
await sendSigningRequestMail(recipient, document); await sendSigningRequestMail(recipient, document);
}); });
// todo way better error handling
return res.status(200).end(); return res.status(200).end();
} }

View File

@ -24,6 +24,7 @@ import {
SendStatus, SendStatus,
SigningStatus, SigningStatus,
DocumentStatus, DocumentStatus,
Document as PrismaDocument,
} from "@prisma/client"; } from "@prisma/client";
import { getUserFromToken } from "@documenso/lib/server"; import { getUserFromToken } from "@documenso/lib/server";
@ -156,36 +157,39 @@ export async function getServerSideProps(context: any) {
const user = await getUserFromToken(context.req, context.res); const user = await getUserFromToken(context.req, context.res);
if (!user) return; if (!user) return;
const drafts = await prisma.document.findMany({ // todo optimize querys
// todo no intersection groups
const documents: PrismaDocument[] = await prisma.document.findMany({
where: { where: {
userId: user.id, 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({ const sent = await prisma.recipient.groupBy({
by: ["documentId"], by: ["documentId"],
where: { where: {
sendStatus: SendStatus.SENT, sendStatus: SendStatus.SENT,
readStatus: ReadStatus.NOT_OPENED,
}, },
}); });
const opened = await prisma.recipient.groupBy({ const opened = await prisma.recipient.groupBy({
by: ["documentId"], by: ["documentId"],
where: { where: {
sendStatus: SendStatus.SENT,
readStatus: ReadStatus.OPENED, readStatus: ReadStatus.OPENED,
}, },
}); });
const completed = await prisma.document.findMany({
where: {
userId: user.id,
status: DocumentStatus.COMPLETED,
},
});
return { return {
props: { props: {
dashboard: { dashboard: {