Mock daten

This commit is contained in:
ISA
2025-06-27 12:19:28 +02:00
parent c788811600
commit 1f11cf68ac
307 changed files with 194047 additions and 144643 deletions

View File

@@ -1,68 +1,49 @@
// /pages/api/cpl/slotDataAPIHandler.ts
import { NextApiRequest, NextApiResponse } from "next";
import path from "path";
import fs from "fs/promises";
// Typ für einzelne Einträge im JSON-Array
type ChartDataEntry = {
timestamp?: string;
zeit?: string;
time?: string;
[key: string]: unknown; // zusätzliche Werte erlaubt
};
// Hilfsfunktion: JSON-Datei laden
async function loadJsonData(filePath: string): Promise<ChartDataEntry[]> {
const data = await fs.readFile(filePath, "utf8");
const parsed = JSON.parse(data);
if (!Array.isArray(parsed)) {
throw new Error("Ungültiges Format: Erwartet ein Array");
}
return parsed;
}
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
const { slot, messart, dia, vonDatum, bisDatum } = req.query;
if (!slot || !messart || !dia) {
return res.status(400).json({ error: "Missing required parameters" });
}
const jsonFilePath = path.join(
process.cwd(),
"mocks",
"device-cgi-simulator",
"kuesChartData",
`slot${slot}`,
`${messart}`,
`${dia}.json`
);
import fs from "fs";
export default function handler(req: NextApiRequest, res: NextApiResponse) {
try {
const jsonData = await loadJsonData(jsonFilePath);
const { slot, messart, dia, vonDatum, bisDatum } = req.query;
let filteredData = jsonData;
if (vonDatum && bisDatum) {
const von = new Date(`${vonDatum}T00:00:00`);
const bis = new Date(`${bisDatum}T23:59:59`);
filteredData = jsonData.filter((item) => {
const dateString = item.timestamp ?? item.zeit ?? item.time;
const itemDate = dateString ? new Date(dateString) : null;
return itemDate !== null && itemDate >= von && itemDate <= bis;
});
if (!slot || !messart || !dia || !vonDatum || !bisDatum) {
return res.status(400).json({ error: "❌ Fehlende Parameter" });
}
res.status(200).json(filteredData);
} catch (error) {
console.error("Fehler beim Lesen der Slot-Daten:", error);
res.status(500).json({ error: "Fehler beim Lesen der Slot-Daten" });
// 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" });
}
}