sunrise-cms/handlers/reports-get/reportName.ts

45 lines
970 B
TypeScript

import type { RequestHandler } from "express";
import {
getReportData,
ReportParameters
} from "../../helpers/lotOccupancyDB/getReportData.js";
import papaparse from "papaparse";
export const handler: RequestHandler = (request, response) => {
const reportName = request.params.reportName;
let rows: unknown[];
switch (reportName) {
default:
rows = getReportData(reportName, request.query as ReportParameters);
break;
}
if (!rows) {
return response.status(404).json({
success: false,
message: "Report Not Found"
});
}
const csv = papaparse.unparse(rows);
response.setHeader(
"Content-Disposition",
"attachment; filename=" +
reportName +
"-" +
Date.now().toString() +
".csv"
);
response.setHeader("Content-Type", "text/csv");
response.send(csv);
};
export default handler;