From c3896707854a92fd7e46702639acaf46cbb3a8e1 Mon Sep 17 00:00:00 2001 From: Ephraim Duncan <55143799+ephraimduncan@users.noreply.github.com> Date: Wed, 14 May 2025 06:43:31 +0000 Subject: [PATCH] fix: trigger webhook for duplicated documents (#1789) --- .../document/duplicate-document-by-id.ts | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/lib/server-only/document/duplicate-document-by-id.ts b/packages/lib/server-only/document/duplicate-document-by-id.ts index 5599b0b4d..33ee8203b 100644 --- a/packages/lib/server-only/document/duplicate-document-by-id.ts +++ b/packages/lib/server-only/document/duplicate-document-by-id.ts @@ -1,9 +1,14 @@ -import { DocumentSource, type Prisma } from '@prisma/client'; +import { DocumentSource, type Prisma, WebhookTriggerEvents } from '@prisma/client'; import { prisma } from '@documenso/prisma'; import { AppError, AppErrorCode } from '../../errors/app-error'; +import { + ZWebhookDocumentSchema, + mapDocumentToWebhookDocumentPayload, +} from '../../types/webhook-payload'; import { prefixedId } from '../../universal/id'; +import { triggerWebhook } from '../webhooks/trigger/trigger-webhook'; import { getDocumentWhereInput } from './get-document-by-id'; export interface DuplicateDocumentOptions { @@ -86,7 +91,24 @@ export const duplicateDocument = async ({ }; } - const createdDocument = await prisma.document.create(createDocumentArguments); + const createdDocument = await prisma.document.create({ + ...createDocumentArguments, + include: { + recipients: true, + documentMeta: true, + }, + }); + + await triggerWebhook({ + event: WebhookTriggerEvents.DOCUMENT_CREATED, + data: ZWebhookDocumentSchema.parse({ + ...mapDocumentToWebhookDocumentPayload(createdDocument), + recipients: createdDocument.recipients, + documentMeta: createdDocument.documentMeta, + }), + userId: userId, + teamId: teamId, + }); return { documentId: createdDocument.id,