From f2d3c516517c6f5c69bc5db8d49b5e48a47fd1e6 Mon Sep 17 00:00:00 2001 From: Ephraim Atta-Duncan Date: Wed, 20 Sep 2023 12:38:39 +0000 Subject: [PATCH] fix: avoid creating document meta with empty strings --- .../forms/edit-document/add-subject.action.ts | 25 +++++++++------ .../document-meta/create-document-meta.ts | 31 +++++++++---------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/apps/web/src/components/forms/edit-document/add-subject.action.ts b/apps/web/src/components/forms/edit-document/add-subject.action.ts index c3b7845f8..c0175b751 100644 --- a/apps/web/src/components/forms/edit-document/add-subject.action.ts +++ b/apps/web/src/components/forms/edit-document/add-subject.action.ts @@ -15,23 +15,28 @@ export const completeDocument = async ({ documentId, email }: CompleteDocumentAc const { id: userId } = await getRequiredServerComponentSession(); + if (!email.message && !email.subject) { + return await sendDocument({ + userId, + documentId, + }); + } + const createDocumentMetaResponse = await createDocumentMeta({ emailBody: email.message, emailSubject: email.subject, }); - if (createDocumentMetaResponse) { - await updateDocument({ - documentId, - data: { - DocumentMeta: { - connect: { - id: createDocumentMetaResponse.id, - }, + await updateDocument({ + documentId, + data: { + DocumentMeta: { + connect: { + id: createDocumentMetaResponse.id, }, }, - }); - } + }, + }); await sendDocument({ userId, diff --git a/packages/lib/server-only/document-meta/create-document-meta.ts b/packages/lib/server-only/document-meta/create-document-meta.ts index e77db9a87..68fa8ed06 100644 --- a/packages/lib/server-only/document-meta/create-document-meta.ts +++ b/packages/lib/server-only/document-meta/create-document-meta.ts @@ -11,26 +11,23 @@ export const createDocumentMeta = async ({ emailBody, emailSubject, }: CreateDocumentMetaOptions) => { - const documentMeta = await prisma.documentMeta.findFirst(); + const emailData = { + customEmailBody: emailBody, + customEmailSubject: emailSubject, + }; - if (!documentMeta) { - return await prisma.documentMeta.create({ - data: { - customEmailBody: emailBody, - customEmailSubject: emailSubject, - }, - }); - } + const existingDocumentMeta = await prisma.documentMeta.findFirst({ + where: emailData, + }); - if (emailBody && emailSubject) { + if (existingDocumentMeta) { return await prisma.documentMeta.update({ - where: { - id: documentMeta.id, - }, - data: { - customEmailBody: emailBody, - customEmailSubject: emailSubject, - }, + where: { id: existingDocumentMeta.id }, + data: emailData, + }); + } else { + return await prisma.documentMeta.create({ + data: emailData, }); } };