refactor: Naming-Konventionen für digitaleEingaenge umgesetzt
- digitaleEingaengeMockData.js = strukturierte Datenbasis für Development - digitaleEingaengeAPIHandler.ts = API-Endpunkt zur Auslieferung im Dev - fetchDigitaleEingaengeService.ts = Service zur Umwandlung von window-Variablen - Naming-Schema sorgt für klare Struktur und gute Lernbarkeit
This commit is contained in:
41
services/fetchDigitalOutputsService.ts
Normal file
41
services/fetchDigitalOutputsService.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
// ✅ Service: /services/fetchDigitalOutputsService.ts
|
||||
|
||||
export const fetchDigitalOutputs = async () => {
|
||||
if (typeof window === "undefined") return [];
|
||||
|
||||
const scriptSrc =
|
||||
process.env.NEXT_PUBLIC_NODE_ENV === "production"
|
||||
? "/CPL?/CPL/SERVICE/da.js"
|
||||
: "/apiMockData/SERVICE/da.js";
|
||||
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
const script = document.createElement("script");
|
||||
script.src = scriptSrc;
|
||||
script.async = true;
|
||||
script.onload = () => resolve();
|
||||
script.onerror = () => reject("❌ Fehler beim Laden von da.js");
|
||||
document.body.appendChild(script);
|
||||
});
|
||||
|
||||
const win = window as any;
|
||||
const state = win.win_da_state;
|
||||
const labels = win.win_da_bezeichnung;
|
||||
|
||||
if (!Array.isArray(state)) {
|
||||
console.warn("⚠️ win_da_state fehlt oder ist ungültig:", state);
|
||||
return [];
|
||||
}
|
||||
|
||||
const outputs = state
|
||||
.slice(0, 4) // ✅ Nur die 4 Ausgänge verwenden
|
||||
.map((status: number, index: number) => ({
|
||||
id: index + 1,
|
||||
label:
|
||||
Array.isArray(labels) && labels[index]
|
||||
? labels[index]
|
||||
: `Ausgang ${index + 1}`,
|
||||
status: status === 1,
|
||||
}));
|
||||
|
||||
return outputs;
|
||||
};
|
||||
Reference in New Issue
Block a user