TASK22224: modernize generatepdf handlers

This commit is contained in:
2026-03-23 18:39:44 +00:00
parent 411190e403
commit cc4fb36439
4 changed files with 250 additions and 133 deletions
+41 -41
View File
@@ -109,7 +109,7 @@ import { respondError, respondSuccess } from "../middleware/apiResponse";
export default async function handler(req, res) {
const shouldDownload = req.query.download === "true";
var checkHash = req.query.hash;
const checkHash = req.query.hash;
let reqBodyobj =
typeof req.body === "string" ? JSON.parse(req.body) : req.body;
@@ -169,15 +169,15 @@ export default async function handler(req, res) {
// "\n//////////////////////\n"
// );
var containerID = reqBodyobj.containerID;
var casefolderID = reqBodyobj.casefolderID;
var caseRef = reqBodyobj.ticketnumber || reqBodyobj.caseRef;
var representationType = reqBodyobj.representationType;
var repRaiser = reqBodyobj.lastname;
var localeSelect = reqBodyobj.locale;
const containerID = reqBodyobj.containerID;
const casefolderID = reqBodyobj.casefolderID;
const caseRef = reqBodyobj.ticketnumber || reqBodyobj.caseRef;
const representationType = reqBodyobj.representationType;
const repRaiser = reqBodyobj.lastname;
const localeSelect = reqBodyobj.locale;
//console.log("there are files:", Object.keys(req.files).length);
var checkquerypath = "/api/file/generatepdf";
let checkquerypath = "/api/file/generatepdf";
if (shouldDownload) {
checkquerypath += "?download=true";
@@ -336,40 +336,40 @@ export default async function handler(req, res) {
});
};
const renderedPDFStream = await ReactPDF.renderToStream(
<MyDocument docProps={reqBodyobj} />
);
const renderedPDFBuffer = await streamToBuffer(renderedPDFStream);
try {
const renderedPDFStream = await ReactPDF.renderToStream(
React.createElement(MyDocument, { docProps: reqBodyobj })
);
const renderedPDFBuffer = await streamToBuffer(renderedPDFStream);
await createRepPDFBlob(
renderedPDFBuffer,
containerID,
caseRef,
reqBodyobj.repfile_name
)
.then((data) => {
if (shouldDownload) {
const filename = `${reqBodyobj.repfile_name || "questionnaire"}.pdf`;
res.setHeader("Content-Type", "application/pdf");
res.setHeader(
"Content-Disposition",
`attachment; filename="${filename}"`
);
return res.status(200).send(renderedPDFBuffer);
}
const data = await createRepPDFBlob(
renderedPDFBuffer,
containerID,
caseRef,
reqBodyobj.repfile_name
);
return respondSuccess(res, {
status: "success",
data: data,
path: `${caseRef}/${reqBodyobj.repfile_name}/files/${reqBodyobj.repfile_name}.pdf`
});
})
.catch((error) => {
consoleLogger(error);
return respondError(res, {
status: 400,
code: "GENERATE_PDF_FAILED",
message: "Failed to generate PDF"
});
if (shouldDownload) {
const filename = `${reqBodyobj.repfile_name || "questionnaire"}.pdf`;
res.setHeader("Content-Type", "application/pdf");
res.setHeader(
"Content-Disposition",
`attachment; filename="${filename}"`
);
return res.status(200).send(renderedPDFBuffer);
}
return respondSuccess(res, {
status: "success",
data: data,
path: `${caseRef}/${reqBodyobj.repfile_name}/files/${reqBodyobj.repfile_name}.pdf`
});
} catch (error) {
consoleLogger(error);
return respondError(res, {
status: 400,
code: "GENERATE_PDF_FAILED",
message: "Failed to generate PDF"
});
}
}