From 40428f40e1d842b4b53ff221c083fe80f6fe29e3 Mon Sep 17 00:00:00 2001 From: Mythie Date: Fri, 19 Jul 2024 12:41:04 +1000 Subject: [PATCH] fix: only send cancelled emails to recipients who have received the document --- packages/lib/server-only/document/delete-document.ts | 6 +++++- packages/lib/server-only/document/super-delete-document.ts | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/lib/server-only/document/delete-document.ts b/packages/lib/server-only/document/delete-document.ts index bf4f8aa06..6ac8e1bd3 100644 --- a/packages/lib/server-only/document/delete-document.ts +++ b/packages/lib/server-only/document/delete-document.ts @@ -7,7 +7,7 @@ import { render } from '@documenso/email/render'; import DocumentCancelTemplate from '@documenso/email/templates/document-cancel'; import { prisma } from '@documenso/prisma'; import type { Document, DocumentMeta, Recipient, User } from '@documenso/prisma/client'; -import { DocumentStatus } from '@documenso/prisma/client'; +import { DocumentStatus, SendStatus } from '@documenso/prisma/client'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; @@ -178,6 +178,10 @@ const handleDocumentOwnerDelete = async ({ // Send cancellation emails to recipients. await Promise.all( document.Recipient.map(async (recipient) => { + if (recipient.sendStatus !== SendStatus.SENT) { + return; + } + const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000'; const template = createElement(DocumentCancelTemplate, { diff --git a/packages/lib/server-only/document/super-delete-document.ts b/packages/lib/server-only/document/super-delete-document.ts index 0a5ed69c0..0dfc9c163 100644 --- a/packages/lib/server-only/document/super-delete-document.ts +++ b/packages/lib/server-only/document/super-delete-document.ts @@ -6,7 +6,7 @@ import { mailer } from '@documenso/email/mailer'; import { render } from '@documenso/email/render'; import DocumentCancelTemplate from '@documenso/email/templates/document-cancel'; import { prisma } from '@documenso/prisma'; -import { DocumentStatus } from '@documenso/prisma/client'; +import { DocumentStatus, SendStatus } from '@documenso/prisma/client'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; @@ -41,6 +41,10 @@ export const superDeleteDocument = async ({ id, requestMetadata }: SuperDeleteDo if (status === DocumentStatus.PENDING && document.Recipient.length > 0) { await Promise.all( document.Recipient.map(async (recipient) => { + if (recipient.sendStatus !== SendStatus.SENT) { + return; + } + const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000'; const template = createElement(DocumentCancelTemplate, { documentName: document.title,