feat: separate document data from document

This commit is contained in:
Mythie
2023-09-07 19:27:21 +10:00
parent ff957a2f82
commit a2ef9468ae
22 changed files with 300 additions and 44 deletions

View File

@ -12,6 +12,8 @@
],
"scripts": {},
"dependencies": {
"@aws-sdk/s3-request-presigner": "^3.405.0",
"@aws-sdk/client-s3": "^3.405.0",
"@documenso/email": "*",
"@documenso/prisma": "*",
"@next-auth/prisma-adapter": "1.0.7",

View File

@ -0,0 +1,10 @@
'use server';
export type CreateDocumentOptions = {
userId: number;
fileName: string;
};
export const createDocument = () => {
//
};

View File

@ -11,5 +11,8 @@ export const getDocumentById = async ({ id, userId }: GetDocumentByIdOptions) =>
id,
userId,
},
include: {
documentData: true,
},
});
};

View File

@ -17,6 +17,7 @@ export const getDocumentAndSenderByToken = async ({
},
include: {
User: true,
documentData: true,
},
});

View File

@ -18,8 +18,15 @@ export const sealDocument = async ({ documentId }: SealDocumentOptions) => {
where: {
id: documentId,
},
include: {
documentData: true,
},
});
if (!document.documentData) {
throw new Error(`Document ${document.id} has no document data`);
}
if (document.status !== DocumentStatus.COMPLETED) {
throw new Error(`Document ${document.id} has not been completed`);
}
@ -48,7 +55,7 @@ export const sealDocument = async ({ documentId }: SealDocumentOptions) => {
}
// !: Need to write the fields onto the document as a hard copy
const { document: pdfData } = document;
const { data: pdfData } = document.documentData;
const doc = await PDFDocument.load(pdfData);
@ -64,7 +71,11 @@ export const sealDocument = async ({ documentId }: SealDocumentOptions) => {
status: DocumentStatus.COMPLETED,
},
data: {
document: Buffer.from(pdfBytes).toString('base64'),
documentData: {
update: {
data: Buffer.from(pdfBytes).toString('base64'),
},
},
},
});
};