🚸 🚚 rename signDocument to addDigitalSignature, sign only when signatures exist

This commit is contained in:
Timur Ercan
2023-03-02 17:54:19 +01:00
parent 7980ed4998
commit c6cdb116e3
3 changed files with 22 additions and 7 deletions

View File

@ -7,7 +7,7 @@ import prisma from "@documenso/prisma";
import { NextApiRequest, NextApiResponse } from "next";
import { Document as PrismaDocument } from "@prisma/client";
import { getDocument } from "@documenso/lib/query";
import { signDocument } from "@documenso/signing/signDocument";
import { addDigitalSignature } from "@documenso/signing/addDigitalSignature";
async function getHandler(req: NextApiRequest, res: NextApiResponse) {
const user = await getUserFromToken(req, res);
@ -25,9 +25,20 @@ async function getHandler(req: NextApiRequest, res: NextApiResponse) {
if (!document)
res.status(404).end(`No document with id ${documentId} found.`);
const signedDocumentAsBase64 = await signDocument(
document.document.toString()
);
const signaturesCount = await prisma.signature.count({
where: {
Field: {
documentId: document.id,
},
},
});
let signedDocumentAsBase64 = document.document;
// No need to add a signature, if no one signed yet.
if (signaturesCount > 0) {
signedDocumentAsBase64 = await addDigitalSignature(document.document);
}
const buffer: Buffer = Buffer.from(signedDocumentAsBase64, "base64");
res.setHeader("Content-Type", "application/pdf");

View File

@ -7,12 +7,14 @@ import prisma from "@documenso/prisma";
import { NextApiRequest, NextApiResponse } from "next";
import { Document as PrismaDocument } from "@prisma/client";
import { getDocument } from "@documenso/lib/query";
import { signDocument } from "@documenso/signing/signDocument";
import { addDigitalSignature } from "@documenso/signing/addDigitalSignature";
async function getHandler(req: NextApiRequest, res: NextApiResponse) {
const documentId = req.query.id || 1;
const document: PrismaDocument = await getDocument(+documentId, req, res);
const signedDocumentAsBase64 = await signDocument(document.document.toString());
const signedDocumentAsBase64 = await addDigitalSignature(
document.document.toString()
);
const buffer: Buffer = Buffer.from(signedDocumentAsBase64, "base64");
res.setHeader("Content-Type", "application/pdf");
res.setHeader(

View File

@ -8,7 +8,9 @@ import {
PDFString,
} from "pdf-lib";
export const signDocument = async (documentAsBase64: string): Promise<any> => {
export const addDigitalSignature = async (
documentAsBase64: string
): Promise<any> => {
// Custom code to add Byterange to PDF
const PDFArrayCustom = require("./PDFArrayCustom");