feat: allow document rejection in embeds (#1662)

This commit is contained in:
Lucas Smith
2025-02-20 11:34:19 +11:00
committed by David Nguyen
parent 139bc265c7
commit 483d7caef7
5 changed files with 103 additions and 5 deletions

View File

@ -13,6 +13,7 @@ import { fieldsContainUnsignedRequiredField } from '@documenso/lib/utils/advance
import { createDocumentAuditLogData } from '@documenso/lib/utils/document-audit-logs';
import { prisma } from '@documenso/prisma';
import { AppError, AppErrorCode } from '../../errors/app-error';
import { jobs } from '../../jobs/client';
import type { TRecipientActionAuth } from '../../types/document-auth';
import {
@ -73,6 +74,13 @@ export const completeDocumentWithToken = async ({
throw new Error(`Recipient ${recipient.id} has already signed`);
}
if (recipient.signingStatus === SigningStatus.REJECTED) {
throw new AppError(AppErrorCode.UNKNOWN_ERROR, {
message: 'Recipient has already rejected the document',
statusCode: 400,
});
}
if (document.documentMeta?.signingOrder === DocumentSigningOrder.SEQUENTIAL) {
const isRecipientsTurn = await getIsRecipientsTurnToSign({ token: recipient.token });