// /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); interface SlotDataEntry { t: string; [key: string]: unknown; } const fromDateStr = String(vonDatum); const toDateStr = String(bisDatum); const filtered = (jsonData as SlotDataEntry[]).filter( (entry: SlotDataEntry) => { 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: unknown) { console.error("❌ Fehler beim Lesen der Slot-Daten:", error); res.status(500).json({ error: "❌ Interner Serverfehler" }); } }