From 0b7704935f79d53c90316de9a4c7cfa890cb1fea Mon Sep 17 00:00:00 2001 From: ISA Date: Wed, 21 May 2025 10:41:59 +0200 Subject: [PATCH] =?UTF-8?q?cleanup:=20alte=20GIS-Fetch-Dateien=20und=20unn?= =?UTF-8?q?=C3=B6tige=20Service-Imports=20entfernt=20=E2=80=93=20vollst?= =?UTF-8?q?=C3=A4ndige=20Umstellung=20auf=20zentrale=20Thunks=20abgeschlos?= =?UTF-8?q?sen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 36 +++++++++++++++++++ components/AddPOIModal.js | 2 +- components/mainComponent/MapComponent.js | 12 +++---- components/pois/PoiUpdateModal.js | 2 +- config/appVersion.js | 2 +- .../locationDevicesFromDBSlice.js | 2 +- redux/slices/database/locationDevicesSlice.js | 31 ++++++++++++++++ .../slices/{db => database}/poiTypesSlice.js | 2 +- .../gisStationsMeasurementsSlice.js | 2 +- .../gisStationsStaticDistrictSlice.js | 5 ++- .../gisStationsStatusDistrictSlice.js | 5 ++- .../slices/webService/gisSystemStaticSlice.js | 5 ++- redux/store.js | 4 +-- .../database/fetchLocationDevicesThunk.js | 7 ++++ .../fetchGisStationsMeasurementsThunk.js | 4 +-- .../fetchGisStationsStaticDistrictThunk.js | 4 +-- .../fetchGisStationsStatusDistrictThunk.js | 4 +-- .../fetchGisSystemStaticThunk.js | 4 +-- .../database/fetchLocationDevicesService.js | 8 +++++ 19 files changed, 110 insertions(+), 31 deletions(-) rename redux/slices/{db => database}/locationDevicesFromDBSlice.js (94%) create mode 100644 redux/slices/database/locationDevicesSlice.js rename redux/slices/{db => database}/poiTypesSlice.js (96%) create mode 100644 redux/thunks/database/fetchLocationDevicesThunk.js rename redux/thunks/{ => webservice}/fetchGisStationsMeasurementsThunk.js (60%) rename redux/thunks/{ => webservice}/fetchGisStationsStaticDistrictThunk.js (60%) rename redux/thunks/{ => webservice}/fetchGisStationsStatusDistrictThunk.js (60%) rename redux/thunks/{ => webservice}/fetchGisSystemStaticThunk.js (60%) create mode 100644 services/database/fetchLocationDevicesService.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ec7b5106..8060bf6cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,42 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie --- +## [1.1.126] – 2025-05-21 + +### Cleanup + +- 🧼 Veraltete GIS-API-Fetch-Dateien entfernt, da nun vollständig durch zentrale Redux-Architektur ersetzt: + - `fetchGisStationsMeasurements.js` + - `fetchGisStationsStatic.js` + - `fetchGisStationsStaticDistrict.js` + - `fetchGisStationsStatusDistrict.js` + - `fetchGisSystemStatic.js` +- Ebenso entfernt: + - `fetchLocationDevices.js` aus `/redux/api/fromDB/` + +### Changed + +- 🔁 Neue Ordnerstruktur eingeführt: + - `redux/thunks/webservice/` für TALAS WebServices (Port 80) + - `redux/thunks/database/` für API-Zugriffe auf eigene DB (Port 3000) +- Alle GIS-Thunks liegen jetzt in `/redux/thunks/webservice/` für klare Trennung +- Thunks übernehmen den Service-Import – Slices sind vollständig entkoppelt + +### Fixed + +- Alle GIS-Redux-Slices importieren nun ausschließlich zentrale Thunks +- `MapComponent.js`, `DataSheet.js` und andere Komponenten nutzen nur noch: + - `gisStationsMeasurements` + - `gisStationsStaticDistrict` + - `gisStationsStatusDistrict` + - `gisSystemStatic` + +### Version + +- 📦 Version erhöht auf **1.1.126** + +--- + ## [1.1.125] – 2025-05-21 ### Cleanup diff --git a/components/AddPOIModal.js b/components/AddPOIModal.js index 91bd8075d..821c0acbf 100644 --- a/components/AddPOIModal.js +++ b/components/AddPOIModal.js @@ -4,7 +4,7 @@ import ReactDOM from "react-dom"; import { setPoiMarkers } from "../redux/slices/readPoiMarkersStoreSlice"; import { selectGisStationsStaticDistrict } from "../redux/slices/webService/gisStationsStaticDistrictSlice"; import { useDispatch, useSelector } from "react-redux"; -import { fetchPoiTypes } from "../redux/slices/db/poiTypesSlice"; +import { fetchPoiTypes } from "../redux/slices/database/poiTypesSlice"; import { incrementTrigger } from "../redux/slices/poiReadFromDbTriggerSlice"; const ShowAddStationPopup = ({ onClose, map, latlng }) => { diff --git a/components/mainComponent/MapComponent.js b/components/mainComponent/MapComponent.js index 777b55300..bc5afdd12 100644 --- a/components/mainComponent/MapComponent.js +++ b/components/mainComponent/MapComponent.js @@ -38,7 +38,7 @@ import CoordinatePopup from "../CoordinatePopup.js"; //------------------------Daten aus API-------------------- import { fetchPoiDataService } from "../../services/database/fetchPoiDataService.js"; import { selectPolylineVisible, setPolylineVisible } from "../../redux/slices/polylineLayerVisibleSlice.js"; -import { fetchLocationDevicesFromDB } from "../../redux/slices/db/locationDevicesFromDBSlice"; +import { fetchLocationDevicesFromDB } from "../../redux/slices/database/locationDevicesFromDBSlice"; import { selectGisStationsStaticDistrict } from "../../redux/slices/webService/gisStationsStaticDistrictSlice"; @@ -56,12 +56,12 @@ import useRestoreMapSettings from "./hooks/useRestoreMapSettings"; import { setSelectedPoi } from "../../redux/slices/selectedPoiSlice"; import { setDisabled } from "../../redux/slices/polylineEventsDisabledSlice"; import { setMapId, setUserId } from "../../redux/slices/urlParameterSlice"; -import { fetchPoiTypes } from "../../redux/slices/db/poiTypesSlice"; +import { fetchPoiTypes } from "../../redux/slices/database/poiTypesSlice"; -import { fetchGisStationsMeasurementsThunk } from "../../redux/thunks/fetchGisStationsMeasurementsThunk"; -import { fetchGisSystemStaticThunk } from "../../redux/thunks/fetchGisSystemStaticThunk"; -import { fetchGisStationsStaticDistrictThunk } from "../../redux/thunks/fetchGisStationsStaticDistrictThunk"; -import { fetchGisStationsStatusDistrictThunk } from "../../redux/thunks/fetchGisStationsStatusDistrictThunk"; +import { fetchGisStationsMeasurementsThunk } from "../../redux/thunks/webservice/fetchGisStationsMeasurementsThunk"; +import { fetchGisSystemStaticThunk } from "../../redux/thunks/webservice/fetchGisSystemStaticThunk"; +import { fetchGisStationsStaticDistrictThunk } from "../../redux/thunks/webservice/fetchGisStationsStaticDistrictThunk"; +import { fetchGisStationsStatusDistrictThunk } from "../../redux/thunks/webservice/fetchGisStationsStatusDistrictThunk"; const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { const dispatch = useDispatch(); diff --git a/components/pois/PoiUpdateModal.js b/components/pois/PoiUpdateModal.js index 37d7c3fd3..63827809e 100644 --- a/components/pois/PoiUpdateModal.js +++ b/components/pois/PoiUpdateModal.js @@ -1,7 +1,7 @@ // /components/pois/PoiUpdateModal.js import React, { useState, useEffect } from "react"; import Select from "react-select"; // Importiere react-select -import { fetchLocationDevicesFromDB } from "../../redux/slices/db/locationDevicesFromDBSlice"; +import { fetchLocationDevicesFromDB } from "../../redux/slices/database/locationDevicesFromDBSlice"; import { useSelector, useDispatch } from "react-redux"; import { selectMapLayersState } from "../../redux/slices/mapLayersSlice"; diff --git a/config/appVersion.js b/config/appVersion.js index 610af23f6..dc3752748 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.126"; +export const APP_VERSION = "1.1.127"; diff --git a/redux/slices/db/locationDevicesFromDBSlice.js b/redux/slices/database/locationDevicesFromDBSlice.js similarity index 94% rename from redux/slices/db/locationDevicesFromDBSlice.js rename to redux/slices/database/locationDevicesFromDBSlice.js index bc36b7b70..c2524f5db 100644 --- a/redux/slices/db/locationDevicesFromDBSlice.js +++ b/redux/slices/database/locationDevicesFromDBSlice.js @@ -1,4 +1,4 @@ -// /redux/slices/db/locationDevicesFromDBSlice.js +// /redux/slices/database/locationDevicesFromDBSlice.js import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; import { fetchLocationDevices } from "../../api/fromDB/fetchLocationDevices"; diff --git a/redux/slices/database/locationDevicesSlice.js b/redux/slices/database/locationDevicesSlice.js new file mode 100644 index 000000000..aa267cf79 --- /dev/null +++ b/redux/slices/database/locationDevicesSlice.js @@ -0,0 +1,31 @@ +// /redux/slices/database/locationDevicesSlice.js + +import { createSlice } from "@reduxjs/toolkit"; +import { fetchLocationDevicesThunk } from "../../../thunks/fetchLocationDevicesThunk"; + +const slice = createSlice({ + name: "locationDevices", + initialState: { + data: [], + status: "idle", + error: null, + }, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(fetchLocationDevicesThunk.pending, (state) => { + state.status = "loading"; + }) + .addCase(fetchLocationDevicesThunk.fulfilled, (state, action) => { + state.status = "succeeded"; + state.data = action.payload; + }) + .addCase(fetchLocationDevicesThunk.rejected, (state, action) => { + state.status = "failed"; + state.error = action.error.message; + }); + }, +}); + +export default slice.reducer; +export const selectLocationDevices = (state) => state.locationDevices.data; diff --git a/redux/slices/db/poiTypesSlice.js b/redux/slices/database/poiTypesSlice.js similarity index 96% rename from redux/slices/db/poiTypesSlice.js rename to redux/slices/database/poiTypesSlice.js index f5f44c7c2..5e8aa9d5c 100644 --- a/redux/slices/db/poiTypesSlice.js +++ b/redux/slices/database/poiTypesSlice.js @@ -1,4 +1,4 @@ -// /redux/slices/db/poiTypesSlice.js +// /redux/slices/database/poiTypesSlice.js import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; // API-Abruf für POI-Typen diff --git a/redux/slices/webService/gisStationsMeasurementsSlice.js b/redux/slices/webService/gisStationsMeasurementsSlice.js index e7448fa5a..6cbcded76 100644 --- a/redux/slices/webService/gisStationsMeasurementsSlice.js +++ b/redux/slices/webService/gisStationsMeasurementsSlice.js @@ -1,7 +1,7 @@ // /redux/slices/webService/gisStationsMeasurementsSlice.js import { createSlice } from "@reduxjs/toolkit"; -import { fetchGisStationsMeasurementsThunk } from "../../thunks/fetchGisStationsMeasurementsThunk"; +import { fetchGisStationsMeasurementsThunk } from "../../thunks/webservice/fetchGisStationsMeasurementsThunk"; const slice = createSlice({ name: "gisStationsMeasurements", diff --git a/redux/slices/webService/gisStationsStaticDistrictSlice.js b/redux/slices/webService/gisStationsStaticDistrictSlice.js index 55091c668..36ef0844f 100644 --- a/redux/slices/webService/gisStationsStaticDistrictSlice.js +++ b/redux/slices/webService/gisStationsStaticDistrictSlice.js @@ -1,9 +1,8 @@ // redux/slices/webService/gisStationsStaticDistrictSlice.js -import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; -import { fetchGisStationsStaticDistrictService } from "../../../services/webservice/fetchGisStationsStaticDistrictService"; +import { createSlice } from "@reduxjs/toolkit"; -import { fetchGisStationsStaticDistrictThunk } from "../../thunks/fetchGisStationsStaticDistrictThunk"; +import { fetchGisStationsStaticDistrictThunk } from "../../thunks/webservice/fetchGisStationsStaticDistrictThunk"; const slice = createSlice({ name: "gisStationsStaticDistrict", diff --git a/redux/slices/webService/gisStationsStatusDistrictSlice.js b/redux/slices/webService/gisStationsStatusDistrictSlice.js index 08ea89bf1..d496493bd 100644 --- a/redux/slices/webService/gisStationsStatusDistrictSlice.js +++ b/redux/slices/webService/gisStationsStatusDistrictSlice.js @@ -1,9 +1,8 @@ // /redux/slices/webService/gisStationsStatusDistrictSlice.js -import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; -import { fetchGisStationsStatusDistrictService } from "../../../services/webservice/fetchGisStationsStatusDistrictService"; +import { createSlice } from "@reduxjs/toolkit"; -import { fetchGisStationsStatusDistrictThunk } from "../../thunks/fetchGisStationsStatusDistrictThunk"; +import { fetchGisStationsStatusDistrictThunk } from "../../thunks/webservice/fetchGisStationsStatusDistrictThunk"; const slice = createSlice({ name: "gisStationsStatusDistrict", diff --git a/redux/slices/webService/gisSystemStaticSlice.js b/redux/slices/webService/gisSystemStaticSlice.js index f5c8a73a7..53838c096 100644 --- a/redux/slices/webService/gisSystemStaticSlice.js +++ b/redux/slices/webService/gisSystemStaticSlice.js @@ -1,9 +1,8 @@ // /redux/slices/webService/gisSystemStaticSlice.js -import { createSlice, createAsyncThunk } from "@reduxjs/toolkit"; -import { fetchGisSystemStaticService } from "../../../services/webservice/fetchGisSystemStaticService"; +import { createSlice } from "@reduxjs/toolkit"; -import { fetchGisSystemStaticThunk } from "../../thunks/fetchGisSystemStaticThunk"; +import { fetchGisSystemStaticThunk } from "../../thunks/webservice/fetchGisSystemStaticThunk"; const slice = createSlice({ name: "gisSystemStatic", diff --git a/redux/store.js b/redux/store.js index edc7ba048..74616ac6f 100644 --- a/redux/store.js +++ b/redux/store.js @@ -3,13 +3,13 @@ import { configureStore } from "@reduxjs/toolkit"; import lineVisibilityReducer from "./slices/lineVisibilitySlice"; import currentPoiReducer from "./slices/currentPoiSlice"; import polylineLayerVisibleReducer from "./slices/polylineLayerVisibleSlice"; -import locationDevicesFromDBReducer from "./slices/db/locationDevicesFromDBSlice"; +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/db/poiTypesSlice"; +import poiTypesReducer from "./slices/database/poiTypesSlice"; import addPoiOnPolylineReducer from "./slices/addPoiOnPolylineSlice"; import polylineContextMenuReducer from "./slices/polylineContextMenuSlice"; import selectedPoiReducer from "./slices/selectedPoiSlice"; diff --git a/redux/thunks/database/fetchLocationDevicesThunk.js b/redux/thunks/database/fetchLocationDevicesThunk.js new file mode 100644 index 000000000..290d54fc0 --- /dev/null +++ b/redux/thunks/database/fetchLocationDevicesThunk.js @@ -0,0 +1,7 @@ +// /redux/thunks/fetchLocationDevicesThunk.js +import { createAsyncThunk } from "@reduxjs/toolkit"; +import { fetchLocationDevicesService } from "../../../services/database/fetchLocationDevicesService"; + +export const fetchLocationDevicesThunk = createAsyncThunk("locationDevices/fetch", async () => { + return await fetchLocationDevicesService(); +}); diff --git a/redux/thunks/fetchGisStationsMeasurementsThunk.js b/redux/thunks/webservice/fetchGisStationsMeasurementsThunk.js similarity index 60% rename from redux/thunks/fetchGisStationsMeasurementsThunk.js rename to redux/thunks/webservice/fetchGisStationsMeasurementsThunk.js index beb7c8b33..995d6f139 100644 --- a/redux/thunks/fetchGisStationsMeasurementsThunk.js +++ b/redux/thunks/webservice/fetchGisStationsMeasurementsThunk.js @@ -1,7 +1,7 @@ -// /redux/thunks/fetchGisStationsMeasurementsThunk.js +// /redux/thunks/webservice/fetchGisStationsMeasurementsThunk.js import { createAsyncThunk } from "@reduxjs/toolkit"; -import { fetchGisStationsMeasurementsService } from "../../services/webservice/fetchGisStationsMeasurementsService"; +import { fetchGisStationsMeasurementsService } from "../../../services/webservice/fetchGisStationsMeasurementsService"; /** * Redux-Thunk für fetchGisStationsMeasurements diff --git a/redux/thunks/fetchGisStationsStaticDistrictThunk.js b/redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.js similarity index 60% rename from redux/thunks/fetchGisStationsStaticDistrictThunk.js rename to redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.js index 9304df84c..5306622a1 100644 --- a/redux/thunks/fetchGisStationsStaticDistrictThunk.js +++ b/redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.js @@ -1,7 +1,7 @@ -// /redux/thunks/fetchGisStationsStaticDistrictThunk.js +// /redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.js import { createAsyncThunk } from "@reduxjs/toolkit"; -import { fetchGisStationsStaticDistrictService } from "../../services/webservice/fetchGisStationsStaticDistrictService"; +import { fetchGisStationsStaticDistrictService } from "../../../services/webservice/fetchGisStationsStaticDistrictService"; /** * Redux-Thunk für fetchGisStationsStaticDistrict diff --git a/redux/thunks/fetchGisStationsStatusDistrictThunk.js b/redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.js similarity index 60% rename from redux/thunks/fetchGisStationsStatusDistrictThunk.js rename to redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.js index 36396f37d..752896979 100644 --- a/redux/thunks/fetchGisStationsStatusDistrictThunk.js +++ b/redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.js @@ -1,7 +1,7 @@ -// /redux/thunks/fetchGisStationsStatusDistrictThunk.js +// /redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.js import { createAsyncThunk } from "@reduxjs/toolkit"; -import { fetchGisStationsStatusDistrictService } from "../../services/webservice/fetchGisStationsStatusDistrictService"; +import { fetchGisStationsStatusDistrictService } from "../../../services/webservice/fetchGisStationsStatusDistrictService"; /** * Redux-Thunk für fetchGisStationsStatusDistrict diff --git a/redux/thunks/fetchGisSystemStaticThunk.js b/redux/thunks/webservice/fetchGisSystemStaticThunk.js similarity index 60% rename from redux/thunks/fetchGisSystemStaticThunk.js rename to redux/thunks/webservice/fetchGisSystemStaticThunk.js index 5f8a1d546..a3a989886 100644 --- a/redux/thunks/fetchGisSystemStaticThunk.js +++ b/redux/thunks/webservice/fetchGisSystemStaticThunk.js @@ -1,7 +1,7 @@ -// /redux/thunks/fetchGisSystemStaticThunk.js +// /redux/thunks/webservice/fetchGisSystemStaticThunk.js import { createAsyncThunk } from "@reduxjs/toolkit"; -import { fetchGisSystemStaticService } from "../../services/webservice/fetchGisSystemStaticService"; +import { fetchGisSystemStaticService } from "../../../services/webservice/fetchGisSystemStaticService"; /** * Redux-Thunk für fetchGisSystemStatic diff --git a/services/database/fetchLocationDevicesService.js b/services/database/fetchLocationDevicesService.js new file mode 100644 index 000000000..43f10ea38 --- /dev/null +++ b/services/database/fetchLocationDevicesService.js @@ -0,0 +1,8 @@ +// /services/database/fetchLocationDevicesService.js +export const fetchLocationDevicesService = async () => { + const response = await fetch("/api/talas_v5_DB/locationDevice/locationDevices"); + if (!response.ok) { + throw new Error("Geräteliste konnte nicht geladen werden"); + } + return await response.json(); +};