fix: Mock-Datenzugriff über API-Handler in Entwicklungsumgebung integriert

- fetchAnalogInputsHistoryService angepasst: nutzt /api/cpl/fetchAnalogInputsHistory bei NODE_ENV=development
- Produktionsdaten weiterhin direkt vom CPL-Webserver über CGI-Endpunkte geladen
- Chart- und Redux-Datenstrom jetzt vollständig stabil in Entwicklung und Produktion
- Fehler beim direkten Zugriff auf Mock-Dateien in Pages Router Next.js behoben
This commit is contained in:
ISA
2025-04-29 10:55:20 +02:00
parent 40e2b54836
commit e341f43204
6 changed files with 174 additions and 109 deletions

View File

@@ -20,29 +20,24 @@ export async function fetchAnalogInputsHistoryService(): Promise<
const isDev = process.env.NODE_ENV === "development";
if (isDev) {
// ⬇️ ENTWICKLUNG: über API-Handler
const response = await fetch("/api/cpl/fetchAnalogInputsHistory");
if (!response.ok) throw new Error("Fehler beim Laden der Mock-Daten");
return await response.json();
}
// ⬇️ PRODUKTION: direkt vom CPL-Webserver holen
for (let i = 0; i < 8; i++) {
const inputNumber = i + 1; // 18
const sourceId = 99 + inputNumber; // 100107 für AE1AE8
const inputNumber = i + 1;
const sourceId = 99 + inputNumber;
try {
let data: any[];
if (isDev) {
// ⬇️ Lädt lokale Mock-Dateien (z.B. /api/cpl/fetchAnalogInputsHistory)
const response = await fetch(
`/apiMockData/analogInputsHistoryData/analogInput${inputNumber}.json`
);
if (!response.ok) throw new Error("Mock-Daten nicht verfügbar");
data = await response.json();
} else {
// ⬇️ Holt Live-Daten über CPL-HTTP-Endpunkt
const url = `${window.location.origin}/CPL?Service/empty.acp&DIA0=${fromDate};${toDate};${sourceId};1`;
const response = await fetch(url);
if (!response.ok)
throw new Error(`Fehler bei AE${inputNumber}: ${response.status}`);
data = await response.json();
}
const url = `${window.location.origin}/CPL?Service/empty.acp&DIA0=${fromDate};${toDate};${sourceId};1`;
const response = await fetch(url);
if (!response.ok)
throw new Error(`Fehler bei AE${inputNumber}: ${response.status}`);
const data = await response.json();
result[sourceId] = data;
} catch (error) {
console.error(`❌ Fehler beim Laden von AE${inputNumber}:`, error);