IO-2433 Basic embedded authoring.
This commit is contained in:
150
server/esign/webhook.js
Normal file
150
server/esign/webhook.js
Normal file
@@ -0,0 +1,150 @@
|
||||
|
||||
const { Documenso } = require("@documenso/sdk-typescript");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const documenso = new Documenso({
|
||||
apiKey: "api_asojim0czruv13ud",//Done on a by team basis,
|
||||
serverURL: "https://stg-app.documenso.com/api/v2",
|
||||
});
|
||||
|
||||
|
||||
|
||||
async function esignWebhook(req, res) {
|
||||
console.log("Esign Webhook Received:", req.body);
|
||||
try {
|
||||
|
||||
const result = await documenso.documents.download({
|
||||
documentId: req.body.payload.id,
|
||||
});
|
||||
result.resultingBuffer = Buffer.from(result.resultingArrayBuffer);
|
||||
// Save the document to a file for testing purposes
|
||||
const downloadsDir = path.join(__dirname, '../downloads');
|
||||
if (!fs.existsSync(downloadsDir)) {
|
||||
fs.mkdirSync(downloadsDir, { recursive: true });
|
||||
}
|
||||
const filePath = path.join(downloadsDir, `document_${req.body.payload.id}.pdf`);
|
||||
fs.writeFileSync(filePath, result.resultingBuffer);
|
||||
|
||||
console.log(result)
|
||||
|
||||
res.sendStatus(200)
|
||||
} catch (err) {
|
||||
const downloadsDir = path.join(__dirname, '../downloads');
|
||||
if (!fs.existsSync(downloadsDir)) {
|
||||
fs.mkdirSync(downloadsDir, { recursive: true });
|
||||
}
|
||||
const filePath = path.join(downloadsDir, `document_${req.body.payload.id}.pdf`);
|
||||
fs.writeFileSync(filePath, Buffer.from(err.body));
|
||||
console.error("Error handling esign webhook:", err);
|
||||
res.sendStatus(500)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = {
|
||||
esignWebhook
|
||||
}
|
||||
|
||||
// const sampleBody = {
|
||||
// event: "DOCUMENT_COMPLETED",
|
||||
// payload: {
|
||||
// Recipient: [
|
||||
// {
|
||||
// authOptions: {
|
||||
// accessAuth: [
|
||||
// ],
|
||||
// actionAuth: [
|
||||
// ],
|
||||
// },
|
||||
// documentDeletedAt: null,
|
||||
// documentId: 9827,
|
||||
// email: "patrick@imexsystems.ca",
|
||||
// expired: null,
|
||||
// id: 13311,
|
||||
// name: "Customer Fullname",
|
||||
// readStatus: "OPENED",
|
||||
// rejectionReason: null,
|
||||
// role: "SIGNER",
|
||||
// sendStatus: "SENT",
|
||||
// signedAt: "2026-01-30T18:29:12.648Z",
|
||||
// signingOrder: null,
|
||||
// signingStatus: "SIGNED",
|
||||
// templateId: null,
|
||||
// token: "uiEWIsXUPTbWHd7QedVgt",
|
||||
// },
|
||||
// ],
|
||||
// authOptions: {
|
||||
// globalAccessAuth: [
|
||||
// ],
|
||||
// globalActionAuth: [
|
||||
// ],
|
||||
// },
|
||||
// completedAt: "2026-01-30T18:29:16.279Z",
|
||||
// createdAt: "2026-01-30T18:28:48.861Z",
|
||||
// deletedAt: null,
|
||||
// documentMeta: {
|
||||
// allowDictateNextSigner: false,
|
||||
// dateFormat: "yyyy-MM-dd hh:mm a",
|
||||
// distributionMethod: "EMAIL",
|
||||
// drawSignatureEnabled: true,
|
||||
// emailSettings: {
|
||||
// documentCompleted: true,
|
||||
// documentDeleted: true,
|
||||
// documentPending: true,
|
||||
// ownerDocumentCompleted: true,
|
||||
// recipientRemoved: false,
|
||||
// recipientSigned: true,
|
||||
// recipientSigningRequest: true,
|
||||
// },
|
||||
// id: "cml17vfb200qjad1t2spxnc1n",
|
||||
// language: "en",
|
||||
// message: "To perform repairs on your vehicle, we must receive digital authorization. Please review and sign the document to proceed with repairs. ",
|
||||
// redirectUrl: null,
|
||||
// signingOrder: "PARALLEL",
|
||||
// subject: "Repair Authorization for ABC Collision",
|
||||
// timezone: "Etc/UTC",
|
||||
// typedSignatureEnabled: true,
|
||||
// uploadSignatureEnabled: true,
|
||||
// },
|
||||
// externalId: null,
|
||||
// formValues: null,
|
||||
// id: 9827,
|
||||
// recipients: [
|
||||
// {
|
||||
// authOptions: {
|
||||
// accessAuth: [
|
||||
// ],
|
||||
// actionAuth: [
|
||||
// ],
|
||||
// },
|
||||
// documentDeletedAt: null,
|
||||
// documentId: 9827,
|
||||
// email: "patrick@imexsystems.ca",
|
||||
// expired: null,
|
||||
// id: 13311,
|
||||
// name: "Customer Fullname",
|
||||
// readStatus: "OPENED",
|
||||
// rejectionReason: null,
|
||||
// role: "SIGNER",
|
||||
// sendStatus: "SENT",
|
||||
// signedAt: "2026-01-30T18:29:12.648Z",
|
||||
// signingOrder: null,
|
||||
// signingStatus: "SIGNED",
|
||||
// templateId: null,
|
||||
// token: "uiEWIsXUPTbWHd7QedVgt",
|
||||
// },
|
||||
// ],
|
||||
// source: "DOCUMENT",
|
||||
// status: "COMPLETED",
|
||||
// teamId: 742,
|
||||
// templateId: null,
|
||||
// title: "Repair Authorization - 1/30/2026, 6:28:48 PM",
|
||||
// updatedAt: "2026-01-30T18:29:16.280Z",
|
||||
// userId: 654,
|
||||
// visibility: "EVERYONE",
|
||||
// },
|
||||
// createdAt: "2026-01-30T18:29:18.504Z",
|
||||
// webhookEndpoint: "https://dev.patrickfic.com/esign/webhook",
|
||||
// }
|
||||
Reference in New Issue
Block a user