From e8eef329589df43374ddf04f748e981581ccac76 Mon Sep 17 00:00:00 2001 From: RaktimaNXG Date: Thu, 9 May 2024 11:33:20 +0530 Subject: [PATCH] fix: update condition for checking signature widget validation --- .../v1/routes/CreateDocumentWithTemplate.js | 19 +++++-------------- .../v1/routes/createDocumentwithCoordinate.js | 11 ++++------- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js index 0666ebe64..ae816fce6 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js @@ -88,20 +88,11 @@ export default async function createDocumentWithTemplate(request, response) { const updateSigners = placeholder.every(y => signers?.some(x => x.role === y.Role)); // console.log('isValid ', isValid); if (isValid && updateSigners) { - let isSignExist = false; // variable is used to check a signature widget exit or not then execute other code - //for loop is used to check signature widget exist or not - parent: for (let item of template?.Placeholders) { - // Reset for each iteration - for (let x of item?.placeHolder) { - if (!isSignExist) { - isSignExist = x.pos.some(data => data?.type === 'signature'); - if (isSignExist) { - break parent; - } - } - } - } - if (!isSignExist) { + //Check if every item's placeholders contain at least one placeholder with type 'signature'. + let isSignature = template?.Placeholders?.every(item => + item?.placeHolder.some(x => x?.pos.some(data => data?.type === 'signature')) + ); + if (!isSignature) { return response .status(400) .json({ error: 'Please add at least one signature widget for all signers' }); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocumentwithCoordinate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocumentwithCoordinate.js index e1d381d38..40b124cd8 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocumentwithCoordinate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/createDocumentwithCoordinate.js @@ -88,13 +88,10 @@ export default async function createDocumentwithCoordinate(request, response) { objectId: parseUser.userId.objectId, }; if (signers && signers.length > 0) { - //for loop is used to check signature widget exist or not - let isSignExist = true; // Reset for each iteration - for (let item of signers) { - if (!isSignExist) { - signatureExist = item.widgets.some(data => data?.type === 'signature'); - } - } + // Check if at least one signature exists among all items in the signers array + let isSignExist = signers.every(item => + item.widgets.some(data => data?.type === 'signature') + ); if (!isSignExist) { return response .status(400)