Skip to content

Commit 17cb447

Browse files
fix: createdocument from template
1 parent 95cc15e commit 17cb447

File tree

1 file changed

+36
-19
lines changed

1 file changed

+36
-19
lines changed

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

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
const randomId = () => Math.floor(1000 + Math.random() * 9000);
1+
import axios from 'axios';
2+
23
export default async function createDocumentWithTemplate(request, response) {
34
const signers = request.body.signers;
45
const folderId = request.body.folderId;
@@ -27,6 +28,7 @@ export default async function createDocumentWithTemplate(request, response) {
2728
let updateSigners = template?.Placeholders?.every(y =>
2829
signers?.some(x => x.Role === y.Role)
2930
);
31+
3032
if (isValid && updateSigners) {
3133
const folderPtr = {
3234
__type: 'Pointer',
@@ -44,47 +46,62 @@ export default async function createDocumentWithTemplate(request, response) {
4446
}
4547
let templateSigner = template?.Signers ? template?.Signers : [];
4648
if (signers && signers.length > 0) {
47-
let parseSigners;
48-
if (base64File) {
49-
parseSigners = signers;
50-
} else {
51-
parseSigners = JSON.parse(signers);
52-
}
49+
let parseSigners = [...signers];
5350
let createContactUrl = protocol + '/v1/createcontact';
5451

5552
let contact = [];
5653
for (const obj of parseSigners) {
5754
const body = {
58-
name: obj?.name || '',
59-
email: obj?.email || '',
60-
phone: obj?.phone || '',
55+
name: obj?.Name || '',
56+
email: obj?.Email || '',
57+
phone: obj?.Phone || '',
6158
};
6259
try {
6360
const res = await axios.post(createContactUrl, body, {
6461
headers: { 'Content-Type': 'application/json', 'x-api-token': reqToken },
6562
});
66-
// console.log('res ', res.data);
67-
contact.push({
63+
const contactPtr = {
6864
__type: 'Pointer',
6965
className: 'contracts_Contactbook',
7066
objectId: res.data?.objectId,
71-
});
67+
};
68+
const newObj = { ...obj, contactPtr: contactPtr };
69+
contact.push(newObj);
7270
} catch (err) {
73-
// console.log('err ', err.response);
71+
console.log('err ', err);
7472
if (err?.response?.data?.objectId) {
75-
contact.push({
73+
const contactPtr = {
7674
__type: 'Pointer',
7775
className: 'contracts_Contactbook',
7876
objectId: err.response.data?.objectId,
79-
});
77+
};
78+
const newObj = { ...obj, contactPtr: contactPtr };
79+
contact.push(newObj);
8080
}
8181
}
8282
}
83-
object.set('Signers', [...templateSigner, ...contact]);
83+
const contactPtrs = contact.map(x => x.contactPtr);
84+
object.set('Signers', [...templateSigner, ...contactPtrs]);
85+
86+
let updatedPlaceholder = template?.Placeholders?.map(x => {
87+
let matchingSigner = contact.find(y => x.Role && x.Role === y.Role);
88+
89+
if (matchingSigner) {
90+
return {
91+
...x,
92+
signerObjId: matchingSigner?.contactPtr?.objectId,
93+
signerPtr: matchingSigner?.contactPtr,
94+
};
95+
} else {
96+
return {
97+
...x,
98+
};
99+
}
100+
});
101+
object.set('Placeholders', updatedPlaceholder);
84102
} else {
85103
object.set('Signers', templateSigner);
86104
}
87-
88105
object.set('URL', template.URL);
89106
object.set('CreatedBy', template.CreatedBy);
90107
object.set('ExtUserPtr', template.ExtUserPtr);
@@ -121,4 +138,4 @@ export default async function createDocumentWithTemplate(request, response) {
121138
}
122139
return response.status(400).json({ error: 'Something went wrong!' });
123140
}
124-
}
141+
}

0 commit comments

Comments
 (0)