mirror of
https://github.com/documenso/documenso.git
synced 2025-11-19 19:21:39 +10:00
chore: improve logic
This commit is contained in:
@ -124,6 +124,8 @@ export const createDocument = async ({
|
||||
team?.teamGlobalSettings?.documentVisibility,
|
||||
userTeamRole ?? TeamMemberRole.MEMBER,
|
||||
),
|
||||
includeSigningCertificate: team?.teamGlobalSettings?.includeSigningCertificate ?? true,
|
||||
includeAuditTrailLog: team?.teamGlobalSettings?.includeAuditTrailLog ?? true,
|
||||
formValues,
|
||||
source: DocumentSource.DOCUMENT,
|
||||
documentMeta: {
|
||||
|
||||
@ -111,21 +111,36 @@ export const sealDocument = async ({
|
||||
// !: Need to write the fields onto the document as a hard copy
|
||||
const pdfData = await getFile(documentData);
|
||||
|
||||
const certificateData =
|
||||
(document.team?.teamGlobalSettings?.includeSigningCertificate ?? true)
|
||||
? await getCertificatePdf({
|
||||
documentId,
|
||||
language: document.documentMeta?.language,
|
||||
}).catch(() => null)
|
||||
: null;
|
||||
let includeSigningCertificate;
|
||||
|
||||
const auditLogData =
|
||||
(document.team?.teamGlobalSettings?.includeAuditTrailLog ?? true)
|
||||
? await getAuditLogsPdf({
|
||||
documentId,
|
||||
language: document.documentMeta?.language,
|
||||
}).catch(() => null)
|
||||
: null;
|
||||
if (document.teamId) {
|
||||
includeSigningCertificate =
|
||||
document.team?.teamGlobalSettings?.includeSigningCertificate ?? true;
|
||||
} else {
|
||||
includeSigningCertificate = document.includeSigningCertificate ?? true;
|
||||
}
|
||||
|
||||
const certificateData = includeSigningCertificate
|
||||
? await getCertificatePdf({
|
||||
documentId,
|
||||
language: document.documentMeta?.language,
|
||||
}).catch(() => null)
|
||||
: null;
|
||||
|
||||
let includeAuditTrailLog;
|
||||
|
||||
if (document.teamId) {
|
||||
includeAuditTrailLog = document.team?.teamGlobalSettings?.includeAuditTrailLog ?? true;
|
||||
} else {
|
||||
includeAuditTrailLog = document.includeAuditTrailLog ?? true;
|
||||
}
|
||||
|
||||
const auditLogData = includeAuditTrailLog
|
||||
? await getAuditLogsPdf({
|
||||
documentId,
|
||||
language: document.documentMeta?.language,
|
||||
}).catch(() => null)
|
||||
: null;
|
||||
|
||||
const doc = await PDFDocument.load(pdfData);
|
||||
|
||||
|
||||
@ -21,6 +21,8 @@ export type UpdateDocumentOptions = {
|
||||
title?: string;
|
||||
externalId?: string | null;
|
||||
visibility?: DocumentVisibility | null;
|
||||
includeSigningCertificate?: boolean;
|
||||
includeAuditTrailLog?: boolean;
|
||||
globalAccessAuth?: TDocumentAccessAuthTypes | null;
|
||||
globalActionAuth?: TDocumentActionAuthTypes | null;
|
||||
};
|
||||
@ -156,6 +158,12 @@ export const updateDocument = async ({
|
||||
documentGlobalActionAuth === undefined || documentGlobalActionAuth === newGlobalActionAuth;
|
||||
const isDocumentVisibilitySame =
|
||||
data.visibility === undefined || data.visibility === document.visibility;
|
||||
const isIncludeSigningCertificateSame =
|
||||
data.includeSigningCertificate === undefined ||
|
||||
data.includeSigningCertificate === document.includeSigningCertificate;
|
||||
const isIncludeAuditTrailLogSame =
|
||||
data.includeAuditTrailLog === undefined ||
|
||||
data.includeAuditTrailLog === document.includeAuditTrailLog;
|
||||
|
||||
const auditLogs: CreateDocumentAuditLogDataResponse[] = [];
|
||||
|
||||
@ -235,6 +243,34 @@ export const updateDocument = async ({
|
||||
);
|
||||
}
|
||||
|
||||
if (!isIncludeSigningCertificateSame) {
|
||||
auditLogs.push(
|
||||
createDocumentAuditLogData({
|
||||
type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_SIGNING_CERTIFICATE_UPDATED,
|
||||
documentId,
|
||||
metadata: requestMetadata,
|
||||
data: {
|
||||
from: String(document.includeSigningCertificate),
|
||||
to: String(data.includeSigningCertificate || false),
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
if (!isIncludeAuditTrailLogSame) {
|
||||
auditLogs.push(
|
||||
createDocumentAuditLogData({
|
||||
type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_AUDIT_TRAIL_UPDATED,
|
||||
documentId,
|
||||
metadata: requestMetadata,
|
||||
data: {
|
||||
from: String(document.includeAuditTrailLog),
|
||||
to: String(data.includeAuditTrailLog || false),
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
// Early return if nothing is required.
|
||||
if (auditLogs.length === 0) {
|
||||
return document;
|
||||
@ -254,6 +290,8 @@ export const updateDocument = async ({
|
||||
title: data.title,
|
||||
externalId: data.externalId,
|
||||
visibility: data.visibility as DocumentVisibility,
|
||||
includeSigningCertificate: data.includeSigningCertificate,
|
||||
includeAuditTrailLog: data.includeAuditTrailLog,
|
||||
authOptions,
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user