Skip to content

Commit 79da0f2

Browse files
Merge pull request #704 from OpenSignLabs/raktima-opensignlabs-patch-1
fix: integrate validation for the signature widget as mandatory using API
2 parents 7912670 + e8eef32 commit 79da0f2

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ export default async function createDocumentWithTemplate(request, response) {
8888
const updateSigners = placeholder.every(y => signers?.some(x => x.role === y.Role));
8989
// console.log('isValid ', isValid);
9090
if (isValid && updateSigners) {
91+
//Check if every item's placeholders contain at least one placeholder with type 'signature'.
92+
let isSignature = template?.Placeholders?.every(item =>
93+
item?.placeHolder.some(x => x?.pos.some(data => data?.type === 'signature'))
94+
);
95+
if (!isSignature) {
96+
return response
97+
.status(400)
98+
.json({ error: 'Please add at least one signature widget for all signers' });
99+
}
91100
const folderPtr = {
92101
__type: 'Pointer',
93102
className: 'contracts_Document',
@@ -169,7 +178,7 @@ export default async function createDocumentWithTemplate(request, response) {
169178
object.set('Signers', templateSigner);
170179
}
171180
object.set('URL', template.URL);
172-
object.set('SignedUrl', template.URL);
181+
object.set('SignedUrl', template.URL);
173182
object.set('CreatedBy', template.CreatedBy);
174183
object.set('ExtUserPtr', {
175184
__type: 'Pointer',

apps/OpenSignServer/cloud/customRoute/v1/routes/createDocumentwithCoordinate.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ export default async function createDocumentwithCoordinate(request, response) {
8888
objectId: parseUser.userId.objectId,
8989
};
9090
if (signers && signers.length > 0) {
91+
// Check if at least one signature exists among all items in the signers array
92+
let isSignExist = signers.every(item =>
93+
item.widgets.some(data => data?.type === 'signature')
94+
);
95+
if (!isSignExist) {
96+
return response
97+
.status(400)
98+
.json({ error: 'Please add at least one signature widget for all signers' });
99+
}
91100
let fileUrl;
92101
if (request.files?.[0]) {
93102
const base64 = fileData?.toString('base64');

0 commit comments

Comments
 (0)