Files
CPLv4.0/services/fetchAnalogInputsHistoryService.ts
2025-07-03 07:36:10 +02:00

73 lines
2.0 KiB
TypeScript

// services/fetchAnalogInputsHistoryService.ts
export async function fetchAnalogInputsHistoryService(): Promise<
Record<number, unknown[]>
> {
const today = new Date();
const yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
const formatDate = (date: Date) =>
`${date.getFullYear()};${String(date.getMonth() + 1).padStart(
2,
"0"
)};${String(date.getDate()).padStart(2, "0")}`;
const fromDate = formatDate(yesterday);
const toDate = formatDate(today);
const result: Record<number, unknown[]> = {};
const isDev = process.env.NODE_ENV === "development";
if (isDev) {
try {
// ⬇️ ENTWICKLUNG: über API-Handler
const response = await fetch("/api/cpl/getAnalogInputsHistory");
// 🔍 Log: Rohantwort prüfen
console.log("📡 [DEV] Raw response:", response);
if (!response.ok) {
throw new Error(
`❌ Fehler beim Laden der Mock-Daten: ${response.statusText}`
);
}
// ✅ Versuch, JSON zu parsen
const data = await response.json();
// 🔍 Log: JSON anzeigen
//console.log("✅ [DEV] Parsed JSON:", data);
// 🔍 Validitätsprüfung (optional)
JSON.stringify(data); // Wenn das fehlschlägt, wird catch ausgelöst
return data;
} catch (error) {
console.error("❗ [DEV] Fehler beim Verarbeiten der JSON-Daten:", error);
return {};
}
}
// ⬇️ PRODUKTION: direkt vom CPL-Webserver holen
for (let i = 0; i < 8; i++) {
const inputNumber = i + 1;
const sourceId = 99 + inputNumber;
try {
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);
result[sourceId] = [];
}
}
return result;
}