50 lines
1.4 KiB
TypeScript
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" });
|
|
}
|
|
}
|