Skip to content

Commit 72a0ce3

Browse files
fix: ensure webhook is triggered when document is created via quick send
1 parent f44205b commit 72a0ce3

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

apps/OpenSignServer/cloud/parsefunction/createBatchDocs.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,74 @@ async function sendMail(document) {
113113
}
114114
}
115115
}
116+
async function callwebhookevent(document) {
117+
const Signers = document.Signers;
118+
const allSigner = document?.Placeholders?.map(item => {
119+
if (item.signerObjId) {
120+
const signer = Signers?.find(e => item?.signerPtr?.objectId === e?.objectId);
121+
if (signer) {
122+
return {
123+
role: item?.Role || '',
124+
name: signer?.Name || '',
125+
email: signer?.Email || '',
126+
phone: signer?.Phone || '',
127+
};
128+
}
129+
} else {
130+
return { role: item?.Role || '', name: '', email: item?.email || '', phone: '' };
131+
}
132+
});
133+
const params = {
134+
event: 'created',
135+
body: {
136+
objectId: document?.objectId,
137+
file: document?.SignedUrl || document?.URL,
138+
name: document?.Name,
139+
note: document?.Note || '',
140+
description: document?.Description || '',
141+
signers: allSigner,
142+
createdBy: document?.ExtUserPtr.Email,
143+
createdAt: document?.createdAt,
144+
},
145+
};
146+
try {
147+
await axios
148+
.post(document?.ExtUserPtr?.Webhook, params, {
149+
headers: { 'Content-Type': 'application/json' },
150+
})
151+
.then(res => {
152+
try {
153+
const webhook = new Parse.Object('contracts_Webhook');
154+
webhook.set('Log', res?.status);
155+
webhook.set('UserId', {
156+
__type: 'Pointer',
157+
className: '_User',
158+
objectId: document.CreatedBy.objectId,
159+
});
160+
webhook.save(null, { useMasterKey: true });
161+
} catch (err) {
162+
console.log('err save in contracts_Webhook', err);
163+
}
164+
})
165+
.catch(err => {
166+
console.log('Err send data to webhook', err?.message);
167+
try {
168+
const webhook = new Parse.Object('contracts_Webhook');
169+
webhook.set('Log', err?.status);
170+
webhook.set('UserId', {
171+
__type: 'Pointer',
172+
className: '_User',
173+
objectId: document.CreatedBy.objectId,
174+
});
175+
webhook.save(null, { useMasterKey: true });
176+
} catch (err) {
177+
console.log('err save in contracts_Webhook', err?.message);
178+
}
179+
});
180+
} catch (err) {
181+
console.log('Err ', err?.message);
182+
}
183+
}
116184
async function batchQuery(userId, Documents, Ip, parseConfig) {
117185
const extCls = new Parse.Query('contracts_Users');
118186
extCls.equalTo('UserId', {
@@ -216,6 +284,7 @@ async function batchQuery(userId, Documents, Ip, parseConfig) {
216284
for (let i = 0; i < updateDocuments.length; i++) {
217285
sendMail(updateDocuments[i], ''); //sessionToken
218286
}
287+
callwebhookevent(Documents[0]);
219288
return 'success';
220289
}
221290
} else {
@@ -242,6 +311,7 @@ async function batchQuery(userId, Documents, Ip, parseConfig) {
242311
};
243312
deductcount(response.data.length, resExt.id);
244313
sendMail(updateDocuments); //sessionToken
314+
callwebhookevent(Documents[0]);
245315
return 'success';
246316
}
247317
}

0 commit comments

Comments
 (0)