feat: KVZ API JSON Data
This commit is contained in:
67
redux/thunks/kvzThunks.ts
Normal file
67
redux/thunks/kvzThunks.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
// redux/thunks/kvzThunks.ts
|
||||
import { createAsyncThunk } from "@reduxjs/toolkit";
|
||||
import {
|
||||
fetchKvzData,
|
||||
updateKvzSettings,
|
||||
} from "../../services/fetchKvzDataService";
|
||||
import { setKueData } from "../slices/kueDataSlice";
|
||||
|
||||
/**
|
||||
* Lädt KVZ-Daten von der API und aktualisiert Redux Store
|
||||
*/
|
||||
export const loadKvzData = createAsyncThunk(
|
||||
"kvz/loadData",
|
||||
async (_, { dispatch }) => {
|
||||
try {
|
||||
const data = await fetchKvzData();
|
||||
|
||||
// KVZ-Daten in Redux Store laden
|
||||
dispatch(
|
||||
setKueData({
|
||||
kvzPresence: data.kvzPresence,
|
||||
kvzActive: data.kvzActive,
|
||||
kvzStatus: data.kvzStatus,
|
||||
})
|
||||
);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error("Fehler beim Laden der KVZ-Daten:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* Aktualisiert KVZ-Einstellungen und synchronisiert Redux Store
|
||||
*/
|
||||
export const updateKvzData = createAsyncThunk(
|
||||
"kvz/updateData",
|
||||
async (
|
||||
updates: Array<{
|
||||
key: "kvzPresence" | "kvzActive" | "kvzStatus";
|
||||
slot?: number;
|
||||
ledIndex?: number;
|
||||
value: number;
|
||||
}>,
|
||||
{ dispatch }
|
||||
) => {
|
||||
try {
|
||||
const data = await updateKvzSettings(updates);
|
||||
|
||||
// Aktualisierte Daten in Redux Store laden
|
||||
dispatch(
|
||||
setKueData({
|
||||
kvzPresence: data.kvzPresence,
|
||||
kvzActive: data.kvzActive,
|
||||
kvzStatus: data.kvzStatus,
|
||||
})
|
||||
);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error("Fehler beim Update der KVZ-Daten:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user