From 8399a957b54fc97d884b30b2917ca4324a23c91b Mon Sep 17 00:00:00 2001 From: Ismail Ali Date: Sat, 8 Mar 2025 08:52:44 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20API-Requests=20f=C3=BCr=20GIS-Daten=20k?= =?UTF-8?q?orrigiert=20und=20Redux-Integration=20gefixt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fehlerhafte Verwendung von `useRouter()` in `fetchGisStationsStaticDistrict.js` behoben - `idMap` und `idUser` in allen API-Requests über URL-Parameter gesichert - Alle API-Endpunkte getestet und sichergestellt, dass sie korrekt JSON-Daten liefern - Debugging-Logs hinzugefügt und Redux-Fehlermeldungen beseitigt - Jetzt erhalten alle Redux-Stores (`gisStationsStaticDistrict`, `gisStationsStatusDistrict`, `gisStationsMeasurements`, `gisSystemStatic`) erfolgreich die Daten ✅ Alle GIS-Daten werden jetzt korrekt in Redux gespeichert --- .env.local | 2 +- config/appVersion.js | 2 +- hooks/useMapComponentState.js | 25 ++++++------------- .../fetchGisStationsMeasurements.js | 16 ++++++++++-- .../fetchGisStationsStaticDistrict.js | 16 ++++++++++-- .../fetchGisStationsStatusDistrict.js | 16 ++++++++++-- .../fromWebService/fetchGisSystemStatic.js | 6 ++++- 7 files changed, 56 insertions(+), 27 deletions(-) diff --git a/.env.local b/.env.local index 0eeebf47c..8d9543dec 100644 --- a/.env.local +++ b/.env.local @@ -9,7 +9,7 @@ DB_PORT=3306 # Public Settings (Client braucht IP/Domain) NEXT_PUBLIC_SERVER_URL="http://192.168.10.33" # oder evtl. später https://nodemap.firma.de NEXT_PUBLIC_ENABLE_GEOCODER=true -NEXT_PUBLIC_USE_MOCK_API=false +NEXT_PUBLIC_USE_MOCK_API=true NEXT_PUBLIC_DEBUG_LOG=true # für Polylines/kabelstecken -> in Konextmenü "Station öffnen" " diff --git a/config/appVersion.js b/config/appVersion.js index 741675367..b70952b0f 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.27"; +export const APP_VERSION = "1.1.28"; diff --git a/hooks/useMapComponentState.js b/hooks/useMapComponentState.js index ed677c13f..65e830d3b 100644 --- a/hooks/useMapComponentState.js +++ b/hooks/useMapComponentState.js @@ -48,26 +48,15 @@ export const useMapComponentState = () => { }; const fetchDeviceData = async () => { - if (isMockMode()) { - console.log("⚠️ Mock-API: Geräte für POI -> Kontextmenü -> POI bearbeiten -> Dropdown Geräteauswahl geladen (Mock)"); - - const mockData = [ - { idPoiTyp: 1, name: "Mock Zähleranschlusskasten", icon: 4, onlySystemTyp: 0 }, - { idPoiTyp: 2, name: "Mock Geräteschrank", icon: 2, onlySystemTyp: 0 }, - { idPoiTyp: 4, name: "Mock Parkplatz", icon: 3, onlySystemTyp: 0 }, - { idPoiTyp: 6, name: "Mock Zufahrt", icon: 4, onlySystemTyp: 0 }, - { idPoiTyp: 20, name: "Mock Zählgerät", icon: 5, onlySystemTyp: 110 }, - { idPoiTyp: 21, name: "Mock Messschleife", icon: 6, onlySystemTyp: 110 }, - { idPoiTyp: 25, name: "Mock Sonstige", icon: 0, onlySystemTyp: 0 }, - { idPoiTyp: 33, name: "Mock Autobahnauffahrt", icon: 4, onlySystemTyp: null }, - ]; - setLocationDeviceData(mockData); - setDeviceName(mockData[0].name); - return; - } - try { const response = await fetch("/api/talas5/location_device"); + + // Sicherstellen, dass die Antwort JSON ist + const contentType = response.headers.get("content-type"); + if (!contentType || !contentType.includes("application/json")) { + throw new Error("❌ Ungültige Antwort: Kein JSON erhalten"); + } + const data = await response.json(); setLocationDeviceData(data); diff --git a/redux/api/fromWebService/fetchGisStationsMeasurements.js b/redux/api/fromWebService/fetchGisStationsMeasurements.js index afe5a7ca4..1507fb883 100644 --- a/redux/api/fromWebService/fetchGisStationsMeasurements.js +++ b/redux/api/fromWebService/fetchGisStationsMeasurements.js @@ -1,10 +1,22 @@ // /redux/api/fromWebService/fetchGisStationsMeasurements.js +// http://192.168.10.33/talas5/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap=12&idUser=484 + const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL; export const fetchGisStationsMeasurements = async () => { - const response = await fetch(`${apiBaseUrl}/GisStationsMeasurements`); + const params = new URLSearchParams(window.location.search); + const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12"; + const idUser = params.get("idUser") || process.env.NEXT_PUBLIC_DEFAULT_ID_USER || "484"; + + console.log("🔍 fetchGisStationsMeasurements - URL:", `${apiBaseUrl}/GisStationsMeasurements?idMap=${idMap}&idUser=${idUser}`); + + const response = await fetch(`${apiBaseUrl}/GisStationsMeasurements?idMap=${idMap}&idUser=${idUser}`); + if (!response.ok) { throw new Error("GisStationsMeasurements konnte nicht geladen werden"); } - return await response.json(); + + const data = await response.json(); + console.log("✅ fetchGisStationsMeasurements - Daten:", data); + return data; }; diff --git a/redux/api/fromWebService/fetchGisStationsStaticDistrict.js b/redux/api/fromWebService/fetchGisStationsStaticDistrict.js index cfef670d7..fd2afb21a 100644 --- a/redux/api/fromWebService/fetchGisStationsStaticDistrict.js +++ b/redux/api/fromWebService/fetchGisStationsStaticDistrict.js @@ -1,10 +1,22 @@ // /redux/api/fromWebService/fetchGisStationsStaticDistrict.js +// http://192.168.10.33/talas5/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=12&idUser=484 + const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL; export const fetchGisStationsStaticDistrict = async () => { - const response = await fetch(`${apiBaseUrl}/GisStationsStaticDistrict`); + const params = new URLSearchParams(window.location.search); + const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12"; + const idUser = params.get("idUser") || process.env.NEXT_PUBLIC_DEFAULT_ID_USER || "484"; + + console.log("🔍 fetchGisStationsStaticDistrict - URL:", `${apiBaseUrl}/GisStationsStaticDistrict?idMap=${idMap}&idUser=${idUser}`); + + const response = await fetch(`${apiBaseUrl}/GisStationsStaticDistrict?idMap=${idMap}&idUser=${idUser}`); + if (!response.ok) { throw new Error("GisStationsStaticDistrict konnte nicht geladen werden"); } - return await response.json(); + + const data = await response.json(); + console.log("✅ fetchGisStationsStaticDistrict - Daten:", data); + return data; }; diff --git a/redux/api/fromWebService/fetchGisStationsStatusDistrict.js b/redux/api/fromWebService/fetchGisStationsStatusDistrict.js index 5f9a04bd3..7ee86edf7 100644 --- a/redux/api/fromWebService/fetchGisStationsStatusDistrict.js +++ b/redux/api/fromWebService/fetchGisStationsStatusDistrict.js @@ -1,10 +1,22 @@ // /redux/api/fromWebService/fetchGisStationsStatusDistrict.js +// http://192.168.10.33/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=12&idUser=484 + const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL; export const fetchGisStationsStatusDistrict = async () => { - const response = await fetch(`${apiBaseUrl}/GisStationsStatusDistrict`); + const params = new URLSearchParams(window.location.search); + const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12"; + const idUser = params.get("idUser") || process.env.NEXT_PUBLIC_DEFAULT_ID_USER || "484"; + + console.log("🔍 fetchGisStationsStatusDistrict - URL:", `${apiBaseUrl}/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`); + + const response = await fetch(`${apiBaseUrl}/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`); + if (!response.ok) { throw new Error("GisStationsStatusDistrict konnte nicht geladen werden"); } - return await response.json(); + + const data = await response.json(); + console.log("✅ fetchGisStationsStatusDistrict - Daten:", data); + return data; }; diff --git a/redux/api/fromWebService/fetchGisSystemStatic.js b/redux/api/fromWebService/fetchGisSystemStatic.js index ee3e75de5..f0447a66b 100644 --- a/redux/api/fromWebService/fetchGisSystemStatic.js +++ b/redux/api/fromWebService/fetchGisSystemStatic.js @@ -1,4 +1,6 @@ // /redux/api/fromWebService/fetchGisSystemStatic.js +// http://192.168.10.33/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=12&idUser=484 + const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL; export async function fetchGisSystemStatic() { @@ -6,9 +8,11 @@ export async function fetchGisSystemStatic() { const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12"; const idUser = params.get("idUser") || process.env.NEXT_PUBLIC_DEFAULT_ID_USER || "484"; + console.log("🔍 fetchGisSystemStatic - URL:", `${apiBaseUrl}/GisSystemStatic?idMap=${idMap}&idUser=${idUser}`); + const response = await fetch(`${apiBaseUrl}/GisSystemStatic?idMap=${idMap}&idUser=${idUser}`); const data = await response.json(); - console.log("fetchGisSystemStatic API Response:", data); + console.log("✅ fetchGisSystemStatic - Daten:", data); return data; }