refactor: Services nach Datenquelle getrennt – webservice/, database/ und utils/ Struktur eingeführt (v1.1.117)
This commit is contained in:
19
CHANGELOG.md
19
CHANGELOG.md
@@ -4,6 +4,25 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## [1.1.117] – 2025-05-20
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- 🔁 Projektstruktur unter `/services/` neu organisiert nach Datenquelle:
|
||||||
|
- `/services/webservice/` für TALAS-WebServices (Port 80)
|
||||||
|
- `/services/database/` für eigene Next.js-APIs (Port 3000)
|
||||||
|
- `/services/utils/` für Hilfsfunktionen (z. B. `fetchWithTimeout`)
|
||||||
|
- Alle Service-Dateien konsistent benannt nach Schema: `fetchXyzService.js`
|
||||||
|
- Beispiel: `fetchGisStationsMeasurementsService.js`, `fetchPoiData.js`, `updateLocationInDatabase.js`
|
||||||
|
|
||||||
|
### Motivation
|
||||||
|
|
||||||
|
- ✅ Bessere Übersicht nach Quelle und Verantwortung
|
||||||
|
- 📦 Klare Trennung zwischen WebService-Fetch und App-APIs
|
||||||
|
- 👨💻 Erleichtert das Onboarding und Debugging
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [1.1.108] – 2025-05-20
|
## [1.1.108] – 2025-05-20
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ import CoordinateInput from "../CoordinateInput.js";
|
|||||||
import CoordinateModal from "../CoordinateModal.js";
|
import CoordinateModal from "../CoordinateModal.js";
|
||||||
import CoordinatePopup from "../CoordinatePopup.js";
|
import CoordinatePopup from "../CoordinatePopup.js";
|
||||||
//------------------------Daten aus API--------------------
|
//------------------------Daten aus API--------------------
|
||||||
import { fetchPoiData } from "../../services/api/fetchPoiData.js";
|
import { fetchPoiData } from "../../services/database/fetchPoiData.js";
|
||||||
import { fetchGisStationsMeasurementsService } from "../../services/api/fetchGisStationsMeasurementsService.js";
|
import { fetchGisStationsMeasurementsService } from "../../services/webservice/fetchGisStationsMeasurementsService.js";
|
||||||
import { selectPolylineVisible, setPolylineVisible } from "../../redux/slices/polylineLayerVisibleSlice.js";
|
import { selectPolylineVisible, setPolylineVisible } from "../../redux/slices/polylineLayerVisibleSlice.js";
|
||||||
import { fetchLocationDevicesFromDB } from "../../redux/slices/db/locationDevicesFromDBSlice";
|
import { fetchLocationDevicesFromDB } from "../../redux/slices/db/locationDevicesFromDBSlice";
|
||||||
import { fetchGisStationsStaticDistrictFromWebService } from "../../redux/slices/webService/gisStationsStaticDistrictSlice";
|
import { fetchGisStationsStaticDistrictFromWebService } from "../../redux/slices/webService/gisStationsStaticDistrictSlice";
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
// /components/mainComponent/hooks/useFetchWebServiceMap.js
|
// /components/mainComponent/hooks/useFetchWebServiceMap.js
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
import { fetchGisStationsStatusDistrictService } from "../../../services/api/fetchGisStationsStatusDistrictService";
|
import { fetchGisStationsStatusDistrictService } from "../../../services/webservice/fetchGisStationsStatusDistrictService";
|
||||||
import { fetchGisStationsMeasurementsService } from "../../../services/api/fetchGisStationsMeasurementsService";
|
import { fetchGisStationsMeasurementsService } from "../../../services/webservice/fetchGisStationsMeasurementsService";
|
||||||
import { fetchGisSystemStatic } from "../../../services/api/fetchGisSystemStatic";
|
import { fetchGisSystemStatic } from "../../../services/webservice/fetchGisSystemStatic";
|
||||||
|
|
||||||
const useFetchWebServiceMap = (mapGisStationsStatusDistrictUrl, mapGisStationsMeasurementsUrl, mapGisSystemStaticUrl, setGisStationsStatusDistrict, setGisStationsMeasurements, setGisSystemStatic, setGisSystemStaticLoaded) => {
|
const useFetchWebServiceMap = (mapGisStationsStatusDistrictUrl, mapGisStationsMeasurementsUrl, mapGisSystemStaticUrl, setGisStationsStatusDistrict, setGisStationsMeasurements, setGisSystemStatic, setGisSystemStaticLoaded) => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// /components/mainComponent/hooks/useLoadUserRights.js
|
// /components/mainComponent/hooks/useLoadUserRights.js
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
import { fetchUserRights } from "../../../services/api/fetchUserRights";
|
import { fetchUserRights } from "../../../services/webservice/fetchUserRights";
|
||||||
|
|
||||||
const useLoadUserRights = (setUserRights, setIsRightsLoaded, setHasRights) => {
|
const useLoadUserRights = (setUserRights, setIsRightsLoaded, setHasRights) => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
// /config/appVersion
|
// /config/appVersion
|
||||||
export const APP_VERSION = "1.1.116";
|
export const APP_VERSION = "1.1.118";
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// /services/api/fetchGisStatusStations.js
|
// /services/api/fetchGisStatusStations.js
|
||||||
import fetchWithTimeout from "./fetchWithTimeout";
|
import fetchWithTimeout from "../utils/fetchWithTimeout";
|
||||||
|
|
||||||
export const fetchGisStatusStations = async (idMap, idUser) => {
|
export const fetchGisStatusStations = async (idMap, idUser) => {
|
||||||
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// utils/polylines/setupPolylines.js
|
// utils/polylines/setupPolylines.js
|
||||||
import { findClosestPoints } from "../geometryUtils";
|
import { findClosestPoints } from "../geometryUtils";
|
||||||
import handlePoiSelect from "../handlePoiSelect";
|
import handlePoiSelect from "../handlePoiSelect";
|
||||||
import { updateLocationInDatabase } from "../../services/api/updateLocationInDatabase";
|
import { updateLocationInDatabase } from "../../services/database/updateLocationInDatabase";
|
||||||
import { handleEditPoi, insertNewPOI, removePOI } from "../poiUtils";
|
import { handleEditPoi, insertNewPOI, removePOI } from "../poiUtils";
|
||||||
import { parsePoint } from "../geometryUtils";
|
import { parsePoint } from "../geometryUtils";
|
||||||
import circleIcon from "../../components/gisPolylines/icons/CircleIcon";
|
import circleIcon from "../../components/gisPolylines/icons/CircleIcon";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// utils/setupPOIs.js
|
// utils/setupPOIs.js
|
||||||
import { findClosestPoints } from "./geometryUtils";
|
import { findClosestPoints } from "./geometryUtils";
|
||||||
import handlePoiSelect from "./handlePoiSelect";
|
import handlePoiSelect from "./handlePoiSelect";
|
||||||
import { updateLocationInDatabase } from "../services/api/updateLocationInDatabase";
|
import { updateLocationInDatabase } from "../services/database/updateLocationInDatabase";
|
||||||
import { handleEditPoi, insertNewPOI, removePOI } from "./poiUtils";
|
import { handleEditPoi, insertNewPOI, removePOI } from "./poiUtils";
|
||||||
import { parsePoint } from "./geometryUtils";
|
import { parsePoint } from "./geometryUtils";
|
||||||
import circleIcon from "../components/gisPolylines/icons/CircleIcon";
|
import circleIcon from "../components/gisPolylines/icons/CircleIcon";
|
||||||
|
|||||||
Reference in New Issue
Block a user