Files
CPLv4.0/redux/thunks/getDigitalInputsThunk.ts
ISA 14bd72756a feat: CGI-kompatiblen CSV-Parser für digitale Eingänge implementiert
- digitaleInputsMockData.json angepasst: CGI-nahe Simulation mit CSV-Strings und Stringwerten
- fetchDigitalInputsService.ts erweitert:
  - CSV-Zeilen werden automatisch in Arrays umgewandelt
  - Labels wie "'DE1','DE2'" werden korrekt aufgeteilt
  - Daten aus 4 CGI-Blöcken zu 32 Eingängen gemappt
- ermöglicht realitätsnahe Tests in Entwicklungsumgebung ohne Produktion
2025-07-09 08:41:50 +02:00

30 lines
1018 B
TypeScript

// @/redux/thunks/getDigitalInputsThunk.ts
import { createAsyncThunk } from "@reduxjs/toolkit";
import { fetchDigitalInputsService } from "@/services/fetchDigitalInputsService";
import { setInputs } from "@/redux/slices/digitalInputsSlice";
/**
* Holt digitale Eingänge von der API und speichert sie in Redux.
*/
export const getDigitalInputsThunk = createAsyncThunk(
"digitalInputs/fetchDigitalInputs",
async (_, { dispatch }) => {
if (typeof window === "undefined") return;
try {
const data = await fetchDigitalInputsService();
if (data) {
// Map data to ensure all DigitalInput properties are present
const mappedData = data.map((item: any) => ({
...item,
flutter: item.flutter ?? false,
zaehlerAktiv: item.zaehlerAktiv ?? false,
}));
dispatch(setInputs(mappedData)); // ✅ Redux mit API-Daten füllen
}
} catch (error) {
console.error("❌ Fehler beim Laden der digitalen Eingänge:", error);
}
}
);