150 lines
5.1 KiB
JavaScript
150 lines
5.1 KiB
JavaScript
|
|
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",
|
|
// }
|