fix: korrigiere fetchGisLinesStatusService für WebService-Antwort 'Statis'

- ersetzt Zugriff auf json.Lines durch json.Statis
- behebt leeren Redux-State bei Linienstatus
- Daten aus Webservice fließen jetzt korrekt in gisLinesStatusSlice
This commit is contained in:
ISA
2025-05-22 11:30:03 +02:00
parent 04e6d19e19
commit 97ee76c5b5
15 changed files with 196 additions and 44 deletions

View File

@@ -1,3 +1,4 @@
// /redux/slices/database/gisLinesSlice.js
import { createSlice } from "@reduxjs/toolkit";
import { fetchGisLinesThunk } from "../../thunks/database/fetchGisLinesThunk";

View File

@@ -0,0 +1,33 @@
// /redux/slices/webservice/gisLinesStatusSlice.js
import { createSlice } from "@reduxjs/toolkit";
import { fetchGisLinesStatusThunk } from "../../thunks/webservice/fetchGisLinesStatusThunk";
const initialState = {
data: [],
status: "idle",
error: null,
};
export const gisLinesStatusSlice = createSlice({
name: "gisLinesStatus",
initialState,
reducers: {},
extraReducers: (builder) => {
builder
.addCase(fetchGisLinesStatusThunk.pending, (state) => {
state.status = "loading";
})
.addCase(fetchGisLinesStatusThunk.fulfilled, (state, action) => {
state.status = "succeeded";
state.data = action.payload;
})
.addCase(fetchGisLinesStatusThunk.rejected, (state, action) => {
state.status = "failed";
state.error = action.payload;
});
},
});
export default gisLinesStatusSlice.reducer;
export const selectGisLinesStatus = (state) => state.gisLinesStatus;

View File

@@ -0,0 +1,34 @@
// /redux/slices/webservice/userRightsSlice.js
import { createSlice } from "@reduxjs/toolkit";
import { fetchUserRightsThunk } from "../../thunks/webservice/fetchUserRightsThunk";
const initialState = {
rights: [],
status: "idle",
error: null,
};
export const userRightsSlice = createSlice({
name: "userRights",
initialState,
reducers: {},
extraReducers: (builder) => {
builder
.addCase(fetchUserRightsThunk.pending, (state) => {
state.status = "loading";
})
.addCase(fetchUserRightsThunk.fulfilled, (state, action) => {
state.status = "succeeded";
state.rights = action.payload;
})
.addCase(fetchUserRightsThunk.rejected, (state, action) => {
state.status = "failed";
state.error = action.payload;
});
},
});
export default userRightsSlice.reducer;
export const selectUserRights = (state) => state.userRights.rights;
export const selectUserRightsStatus = (state) => state.userRights.status;

View File

@@ -3,13 +3,6 @@ import { configureStore } from "@reduxjs/toolkit";
import lineVisibilityReducer from "./slices/lineVisibilitySlice";
import currentPoiReducer from "./slices/currentPoiSlice";
import polylineLayerVisibleReducer from "./slices/polylineLayerVisibleSlice";
import locationDevicesFromDBReducer from "./slices/database/locationDevicesFromDBSlice";
import gisStationsStaticDistrictReducer from "./slices/webService/gisStationsStaticDistrictSlice";
import gisStationsStatusDistrictReducer from "./slices/webService/gisStationsStatusDistrictSlice";
import gisStationsMeasurementsReducer from "./slices/webService/gisStationsMeasurementsSlice";
import gisSystemStaticReducer from "./slices/webService/gisSystemStaticSlice";
import poiTypesReducer from "./slices/database/poiTypesSlice";
import addPoiOnPolylineReducer from "./slices/addPoiOnPolylineSlice";
import polylineContextMenuReducer from "./slices/polylineContextMenuSlice";
import selectedPoiReducer from "./slices/selectedPoiSlice";
@@ -22,8 +15,18 @@ import readPoiMarkersStoreReducer from "./slices/readPoiMarkersStoreSlice";
import selectedAreaReducer from "./slices/selectedAreaSlice";
import zoomTriggerReducer from "./slices/zoomTriggerSlice";
import urlParameterReducer from "./slices/urlParameterSlice";
//-----database------------
import priorityConfigReducer from "./slices/database/priorityConfigSlice";
import gisLinesReducer from "./slices/database/gisLinesSlice";
import poiTypesReducer from "./slices/database/poiTypesSlice";
import locationDevicesFromDBReducer from "./slices/database/locationDevicesFromDBSlice";
//----webservice------------
import gisStationsStaticDistrictReducer from "./slices/webservice/gisStationsStaticDistrictSlice";
import gisStationsStatusDistrictReducer from "./slices/webservice/gisStationsStatusDistrictSlice";
import gisStationsMeasurementsReducer from "./slices/webservice/gisStationsMeasurementsSlice";
import gisSystemStaticReducer from "./slices/webservice/gisSystemStaticSlice";
import gisLinesStatusReducer from "./slices/webservice/gisLinesStatusSlice";
import userRightsReducer from "./slices/webservice/userRightsSlice";
export const store = configureStore({
reducer: {
@@ -50,5 +53,7 @@ export const store = configureStore({
urlParameter: urlParameterReducer,
priorityConfig: priorityConfigReducer,
gisLines: gisLinesReducer,
gisLinesStatus: gisLinesStatusReducer,
userRights: userRightsReducer,
},
});

View File

@@ -1,3 +1,4 @@
// /redux/thunks/database/fetchGisLinesThunk.js
import { createAsyncThunk } from "@reduxjs/toolkit";
import { fetchGisLinesService } from "../../../services/database/fetchGisLinesService";

View File

@@ -0,0 +1,11 @@
// /redux/thunks/webservice/fetchGisLinesStatusThunk.js
import { createAsyncThunk } from "@reduxjs/toolkit";
import { fetchGisLinesStatusService } from "../../../services/webservice/fetchGisLinesStatusService";
export const fetchGisLinesStatusThunk = createAsyncThunk("gisLinesStatus/fetch", async (_, thunkAPI) => {
try {
return await fetchGisLinesStatusService();
} catch (error) {
return thunkAPI.rejectWithValue(error.message);
}
});

View File

@@ -0,0 +1,11 @@
// /redux/thunks/webservice/fetchUserRightsThunk.js
import { createAsyncThunk } from "@reduxjs/toolkit";
import { fetchUserRightsService } from "../../../services/webservice/fetchUserRightsService";
export const fetchUserRightsThunk = createAsyncThunk("userRights/fetch", async (_, thunkAPI) => {
try {
return await fetchUserRightsService();
} catch (error) {
return thunkAPI.rejectWithValue(error.message);
}
});