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

46 lines
953 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;