fix: avoid creating document meta with empty strings

This commit is contained in:
Ephraim Atta-Duncan
2023-09-20 12:38:39 +00:00
parent c9c111cdf2
commit f2d3c51651
2 changed files with 29 additions and 27 deletions

View File

@ -15,23 +15,28 @@ export const completeDocument = async ({ documentId, email }: CompleteDocumentAc
const { id: userId } = await getRequiredServerComponentSession(); const { id: userId } = await getRequiredServerComponentSession();
if (!email.message && !email.subject) {
return await sendDocument({
userId,
documentId,
});
}
const createDocumentMetaResponse = await createDocumentMeta({ const createDocumentMetaResponse = await createDocumentMeta({
emailBody: email.message, emailBody: email.message,
emailSubject: email.subject, emailSubject: email.subject,
}); });
if (createDocumentMetaResponse) { await updateDocument({
await updateDocument({ documentId,
documentId, data: {
data: { DocumentMeta: {
DocumentMeta: { connect: {
connect: { id: createDocumentMetaResponse.id,
id: createDocumentMetaResponse.id,
},
}, },
}, },
}); },
} });
await sendDocument({ await sendDocument({
userId, userId,

View File

@ -11,26 +11,23 @@ export const createDocumentMeta = async ({
emailBody, emailBody,
emailSubject, emailSubject,
}: CreateDocumentMetaOptions) => { }: CreateDocumentMetaOptions) => {
const documentMeta = await prisma.documentMeta.findFirst(); const emailData = {
customEmailBody: emailBody,
customEmailSubject: emailSubject,
};
if (!documentMeta) { const existingDocumentMeta = await prisma.documentMeta.findFirst({
return await prisma.documentMeta.create({ where: emailData,
data: { });
customEmailBody: emailBody,
customEmailSubject: emailSubject,
},
});
}
if (emailBody && emailSubject) { if (existingDocumentMeta) {
return await prisma.documentMeta.update({ return await prisma.documentMeta.update({
where: { where: { id: existingDocumentMeta.id },
id: documentMeta.id, data: emailData,
}, });
data: { } else {
customEmailBody: emailBody, return await prisma.documentMeta.create({
customEmailSubject: emailSubject, data: emailData,
},
}); });
} }
}; };