diff --git a/components/mainComponent/MapComponent.js b/components/mainComponent/MapComponent.js index 8fc400180..c7b28b1f9 100644 --- a/components/mainComponent/MapComponent.js +++ b/components/mainComponent/MapComponent.js @@ -71,6 +71,8 @@ import { selectPolylineVisible, setPolylineVisible } from "../../redux/slices/po import { useInitLocationDevices } from "./hooks/useInitLocationDevices"; import { useInitGisStationsStaticDistrict } from "./hooks/useInitGisStationsStaticDistrict"; import { selectGisStationsStaticDistrict } from "../../redux/slices/webService/gisStationsStaticDistrictSlice"; +import { useInitGisStationsStatusDistrict } from "./hooks/useInitGisStationsStatusDistrict"; +import { useInitGisStationsMeasurements } from "./hooks/useInitGisStationsMeasurements"; const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { const dispatch = useDispatch(); @@ -1001,6 +1003,8 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { // speichere location devices in redux store useInitLocationDevices(); useInitGisStationsStaticDistrict(); + useInitGisStationsStatusDistrict(); + useInitGisStationsMeasurements(); //-------------------------------------- useEffect(() => { console.log("GisStationsStaticDistrict aus Redux:", GisStationsStaticDistrict); diff --git a/components/mainComponent/hooks/useInitGisStationsMeasurements.js b/components/mainComponent/hooks/useInitGisStationsMeasurements.js new file mode 100644 index 000000000..77cedf59e --- /dev/null +++ b/components/mainComponent/hooks/useInitGisStationsMeasurements.js @@ -0,0 +1,12 @@ +// /components/mainComponent/hooks/useInitGisStationsMeasurements.js +import { useEffect } from "react"; +import { useDispatch } from "react-redux"; +import { fetchGisStationsMeasurementsFromWebService } from "../../../redux/slices/webService/gisStationsMeasurementsSlice"; + +export const useInitGisStationsMeasurements = () => { + const dispatch = useDispatch(); + + useEffect(() => { + dispatch(fetchGisStationsMeasurementsFromWebService()); + }, [dispatch]); +}; diff --git a/components/mainComponent/hooks/useInitGisStationsStatusDistrict.js b/components/mainComponent/hooks/useInitGisStationsStatusDistrict.js new file mode 100644 index 000000000..6d75ab118 --- /dev/null +++ b/components/mainComponent/hooks/useInitGisStationsStatusDistrict.js @@ -0,0 +1,12 @@ +// /componets/mainComponent/hooks/useInitGisStationsStatusDistrict.js +import { useEffect } from "react"; +import { useDispatch } from "react-redux"; +import { fetchGisStationsStatusDistrictFromWebService } from "../../../redux/slices/webService/gisStationsStatusDistrictSlice"; + +export const useInitGisStationsStatusDistrict = () => { + const dispatch = useDispatch(); + + useEffect(() => { + dispatch(fetchGisStationsStatusDistrictFromWebService()); + }, [dispatch]); +}; diff --git a/config/appVersion.js b/config/appVersion.js index 7b2a28234..505333ed3 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.24"; +export const APP_VERSION = "1.1.25"; diff --git a/redux/api/fromWebService/fetchGisStationsMeasurements.js b/redux/api/fromWebService/fetchGisStationsMeasurements.js new file mode 100644 index 000000000..04271a4c5 --- /dev/null +++ b/redux/api/fromWebService/fetchGisStationsMeasurements.js @@ -0,0 +1,10 @@ +// /redux/api/fromWebService/fetchGisStationsMeasurements.js +import { mapGisStationsMeasurementsUrl } from "../../../config/config"; + +export const fetchGisStationsMeasurements = async () => { + const response = await fetch(mapGisStationsMeasurementsUrl); + if (!response.ok) { + throw new Error("GisStationsMeasurements konnte nicht geladen werden"); + } + return await response.json(); +}; diff --git a/redux/api/fromWebService/fetchGisStationsStatusDistrict.js b/redux/api/fromWebService/fetchGisStationsStatusDistrict.js new file mode 100644 index 000000000..19390fbb3 --- /dev/null +++ b/redux/api/fromWebService/fetchGisStationsStatusDistrict.js @@ -0,0 +1,10 @@ +// /redux/api/fromWebService/fetchGisStationsStatusDistrict.js +import { mapGisStationsStatusDistrictUrl } from "../../../config/config"; + +export const fetchGisStationsStatusDistrict = async () => { + const response = await fetch(mapGisStationsStatusDistrictUrl); + if (!response.ok) { + throw new Error("GisStationsStatusDistrict konnte nicht geladen werden"); + } + return await response.json(); +}; diff --git a/redux/slices/webService/gisStationsMeasurementsSlice.js b/redux/slices/webService/gisStationsMeasurementsSlice.js new file mode 100644 index 000000000..d72c4036d --- /dev/null +++ b/redux/slices/webService/gisStationsMeasurementsSlice.js @@ -0,0 +1,35 @@ +// /redux/slices/webService/gisStationsMeasurementsSlice.js +import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; +import { fetchGisStationsMeasurements } from "../../api/fromWebService/fetchGisStationsMeasurements"; + +export const fetchGisStationsMeasurementsFromWebService = createAsyncThunk("gisStationsMeasurements/fetchGisStationsMeasurementsFromWebService", async () => { + return fetchGisStationsMeasurements(); +}); + +const gisStationsMeasurementsSlice = createSlice({ + name: "gisStationsMeasurements", + initialState: { + data: [], + status: "idle", + error: null, + }, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(fetchGisStationsMeasurementsFromWebService.pending, (state) => { + state.status = "loading"; + }) + .addCase(fetchGisStationsMeasurementsFromWebService.fulfilled, (state, action) => { + state.status = "succeeded"; + state.data = action.payload; + }) + .addCase(fetchGisStationsMeasurementsFromWebService.rejected, (state, action) => { + state.status = "failed"; + state.error = action.error.message; + }); + }, +}); + +export const selectGisStationsMeasurements = (state) => state.gisStationsMeasurements.data; + +export default gisStationsMeasurementsSlice.reducer; diff --git a/redux/slices/webService/gisStationsStatusDistrictSlice.js b/redux/slices/webService/gisStationsStatusDistrictSlice.js new file mode 100644 index 000000000..ce926a9d4 --- /dev/null +++ b/redux/slices/webService/gisStationsStatusDistrictSlice.js @@ -0,0 +1,35 @@ +// /redux/slices/webService/gisStationsStatusDistrictSlice.js +import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; +import { fetchGisStationsStatusDistrict } from "../../api/fromWebService/fetchGisStationsStatusDistrict"; + +export const fetchGisStationsStatusDistrictFromWebService = createAsyncThunk("gisStationsStatusDistrict/fetchGisStationsStatusDistrictFromWebService", async () => { + return fetchGisStationsStatusDistrict(); +}); + +const gisStationsStatusDistrictSlice = createSlice({ + name: "gisStationsStatusDistrict", + initialState: { + data: [], + status: "idle", + error: null, + }, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(fetchGisStationsStatusDistrictFromWebService.pending, (state) => { + state.status = "loading"; + }) + .addCase(fetchGisStationsStatusDistrictFromWebService.fulfilled, (state, action) => { + state.status = "succeeded"; + state.data = action.payload; + }) + .addCase(fetchGisStationsStatusDistrictFromWebService.rejected, (state, action) => { + state.status = "failed"; + state.error = action.error.message; + }); + }, +}); + +export const selectGisStationsStatusDistrict = (state) => state.gisStationsStatusDistrict.data; + +export default gisStationsStatusDistrictSlice.reducer; diff --git a/redux/store.js b/redux/store.js index 742678a30..f1f2d0bf5 100644 --- a/redux/store.js +++ b/redux/store.js @@ -4,6 +4,8 @@ import currentPoiReducer from "./slices/currentPoiSlice"; import polylineLayerVisibleReducer from "./slices/polylineLayerVisibleSlice"; import locationDevicesFromDBReducer from "./slices/db/locationDevicesFromDBSlice"; import gisStationsStaticDistrictReducer from "./slices/webService/gisStationsStaticDistrictSlice"; +import gisStationsStatusDistrictReducer from "./slices/webService/gisStationsStatusDistrictSlice"; +import gisStationsMeasurementsReducer from "./slices/webService/gisStationsMeasurementsSlice"; export const store = configureStore({ reducer: { @@ -12,5 +14,7 @@ export const store = configureStore({ polylineLayerVisible: polylineLayerVisibleReducer, locationDevicesFromDB: locationDevicesFromDBReducer, gisStationsStaticDistrict: gisStationsStaticDistrictReducer, + gisStationsStatusDistrict: gisStationsStatusDistrictReducer, + gisStationsMeasurements: gisStationsMeasurementsReducer, }, });