Files
CPLv4.0/pages/api/cpl/slotDataAPIHandler.ts
2025-06-27 12:19:28 +02:00

50 lines
1.4 KiB
TypeScript

// /pages/api/cpl/slotDataAPIHandler.ts
import { NextApiRequest, NextApiResponse } from "next";
import path from "path";
import fs from "fs";
export default function handler(req: NextApiRequest, res: NextApiResponse) {
try {
const { slot, messart, dia, vonDatum, bisDatum } = req.query;
if (!slot || !messart || !dia || !vonDatum || !bisDatum) {
return res.status(400).json({ error: "❌ Fehlende Parameter" });
}
// Dateipfad zusammensetzen
const filePath = path.join(
process.cwd(),
"mocks",
"device-cgi-simulator",
"chartsData",
"cable-monitoring-data",
`slot${slot}`,
`${messart}`,
`${dia}.json`
);
if (!fs.existsSync(filePath)) {
return res
.status(404)
.json({ error: `❌ Datei nicht gefunden: ${filePath}` });
}
const fileContent = fs.readFileSync(filePath, "utf-8");
const jsonData = JSON.parse(fileContent);
const fromDateStr = String(vonDatum);
const toDateStr = String(bisDatum);
const filtered = jsonData.filter((entry: any) => {
if (!entry.t) return false;
const dateStr = entry.t.split(" ")[0]; // Nur yyyy-mm-dd extrahieren
return dateStr >= fromDateStr && dateStr <= toDateStr;
});
res.status(200).json(filtered);
} catch (error: any) {
console.error("❌ Fehler beim Lesen der Slot-Daten:", error);
res.status(500).json({ error: "❌ Interner Serverfehler" });
}
}