TASK22224: prune dead code in pdf handlers

This commit is contained in:
2026-03-24 05:58:31 +00:00
parent c6205bbb39
commit dfdfd3653c
3 changed files with 40 additions and 107 deletions
+37
View File
@@ -583,3 +583,40 @@ Validation:
Follow-ups:
- Optional: dead import cleanup (`Document/Page/Text/View/StyleSheet/PDFViewer`, `middleware`, `nextConnect`, `fs`, etc.) can be done in a dedicated non-behavioral hygiene PR.
---
### CL-015: TASK22224 pdf handler dead-code hygiene slice
date: 2026-03-24
author: Cline
scope: `pages/api/file/{generatepdf,generateappealpdf}.js`
type: change
rationale: Execute the requested next low-risk slice by removing dead imports and unused locals in recently hardened PDF handlers.
impact: Non-behavioral maintainability cleanup; reduces lint noise and future edit risk while preserving existing contracts.
status: completed
Summary:
- `pages/api/file/generatepdf.js`
- pruned unused Azure storage imports, leaving only `createRepPDFBlob`
- pruned unused `@react-pdf/renderer` named imports
- removed unused imports (`middleware`, `nextConnect`, `fs`)
- removed unused locals (`casefolderID`, `representationType`, `repRaiser`, `localeSelect`, `repCapacity`, `repType`)
- `pages/api/file/generateappealpdf.js`
- pruned unused Azure storage imports to only required functions
- pruned unused `@react-pdf/renderer` named imports
- removed unused imports (`middleware`, `nextConnect`, `fs`, `path`, unused pdf templates)
- removed unused local (`caseRef`)
Validation:
- `node tests/phase21/api-contract-slice1.test.cjs` -> pass
- helper: 4/4
- file-handler: 53/53
- email-handler: 12/12
- endpoint-handler: 152/152
Follow-ups:
- Optional: run full repo lint in a separate pass for broader non-slice hygiene now that targeted contract suite is stable.
+1 -22
View File
@@ -73,12 +73,6 @@
*/
import {
createContainer,
getContainers,
getBlobs,
createRepBlob,
uploadFile,
uploadPDFAppealFiles,
downloadProgressFile,
getProgressBlobs,
getTempCaseBlob,
@@ -86,23 +80,9 @@ import {
} from "../../../actions/azurestorage";
import { hashAPIPath } from "../../../actions/core/hash";
import ReactPDF, {
Document,
Page,
Text,
View,
StyleSheet,
PDFViewer
} from "@react-pdf/renderer";
import middleware from "../middleware/middleware";
import nextConnect from "next-connect";
import fs from "fs";
import path from "path";
import ReactPDF from "@react-pdf/renderer";
import { getPickLists } from "../../../actions/services/referenceDataService";
import { planningappeals78_pdf } from "../../../components/pdftemplates/planningappeals78_pdf";
import { finalComments_pdf } from "../../../components/pdftemplates/finalComments_pdf";
import { statement_pdf } from "../../../components/pdftemplates/statement_pdf";
import { writtenStatement_pdf } from "../../../components/pdftemplates/writtenStatement_pdf";
import { other_pdf } from "../../../components/pdftemplates/other_pdf";
import { respondError, respondSuccess } from "../middleware/apiResponse";
@@ -120,7 +100,6 @@ export default async function handler(req, res) {
typeof req.body === "string" ? JSON.parse(req.body) : req.body;
const containerID = appealBodyObj.containerID;
const casefolderID = appealBodyObj.casefolderID;
const caseRef = appealBodyObj.caseRef;
let checkquerypath = "/api/file/generateappealpdf";
if (
+2 -85
View File
@@ -72,28 +72,10 @@
* description: Success
*/
import {
createContainer,
getContainers,
getBlobs,
createRepBlob,
uploadFile,
uploadPDFRepFiles,
createRepPDFBlob
} from "../../../actions/azurestorage";
import { createRepPDFBlob } from "../../../actions/azurestorage";
import { hashAPIPath } from "../../../actions/core/hash";
import ReactPDF, {
Document,
Page,
Text,
View,
StyleSheet,
PDFViewer
} from "@react-pdf/renderer";
import middleware from "../middleware/middleware";
import nextConnect from "next-connect";
import fs from "fs";
import ReactPDF from "@react-pdf/renderer";
import { EnforcementQuestionnaire_pdf } from "../../../components/pdftemplates/enforcement_pdf";
import { lpaQuestionnaire_pdf } from "../../../components/pdftemplates/lpaQuestionnaire_pdf";
import { finalComments_pdf } from "../../../components/pdftemplates/finalComments_pdf";
@@ -170,11 +152,7 @@ export default async function handler(req, res) {
// );
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);
let checkquerypath = "/api/file/generatepdf";
@@ -247,67 +225,6 @@ export default async function handler(req, res) {
}
};
let repCapacity = "";
switch (reqBodyobj.representationCapacity) {
case "Appellant":
repCapacity = "APP";
break;
case "Agent":
repCapacity = "AGENT";
break;
case "Interested Party/Person":
repCapacity = "IP";
break;
case "Land Owner":
repCapacity = "LO";
break;
case "lpa":
case "LPA":
repCapacity = "LPA";
break;
default:
// code block
}
let repType = "";
switch (reqBodyobj.representationType) {
case "Statement":
repType = "Statement";
break;
case "Statement of common ground":
repType = "SCG";
break;
case "Written statement":
repType = "WS";
break;
case "Written statement of evidence":
repType = "WSE";
break;
case "Questionnaire":
repType = "Questionnaire";
break;
case "Final comments":
repType = "Comments";
break;
case "Local Impact Report":
repType = "Impact";
break;
case "Consultation Response":
repType = "Consultation_Response";
break;
case "Marine Impact Report":
repType = "Marine_Impact";
break;
case "Other":
repType = "OTHER";
break;
default:
// code block
}
//console.log(
// "///////////////////////////////////\n file created: \n" +
// process.cwd() +