From c877342e3861a42f0b37b4408b77c7a354e6905c Mon Sep 17 00:00:00 2001 From: ISA Date: Tue, 20 May 2025 11:55:31 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20GIS-Messdaten-Service=20korrigiert=20?= =?UTF-8?q?=E2=80=93=20URL-Aufbau=20mit=20idMap,=20idUser=20und=20Port-Log?= =?UTF-8?q?ik=20vereinheitlicht=20in=20fetchGisStationsMeasurementsService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.local | 2 +- components/mainComponent/MapComponent.js | 2 +- .../mainComponent/hooks/useFetchPoiData.js | 2 +- .../hooks/useFetchWebServiceMap.js | 6 ++-- config/appVersion.js | 2 +- ...eById.js => fetchDeviceNameByIdService.js} | 1 + services/api/fetchGisStationsMeasurements.js | 15 ---------- .../fetchGisStationsMeasurementsService.js | 30 +++++++++++++++++++ .../api/fetchGisStationsStaticDistrict.js | 1 + .../api/fetchGisStationsStatusDistrict.js | 2 ++ services/api/fetchGisSystemStatic.js | 2 ++ services/api/fetchPoiData.js | 2 ++ services/api/fetchWithTimeout.js | 2 ++ services/api/updateLocationInDatabase.js | 2 ++ 14 files changed, 49 insertions(+), 22 deletions(-) rename services/api/{fetchDeviceNameById.js => fetchDeviceNameByIdService.js} (92%) delete mode 100644 services/api/fetchGisStationsMeasurements.js create mode 100644 services/api/fetchGisStationsMeasurementsService.js diff --git a/.env.local b/.env.local index da9516171..dd0b1b0f9 100644 --- a/.env.local +++ b/.env.local @@ -12,7 +12,7 @@ NEXT_PUBLIC_DEBUG_LOG=true -#auf dem Entwicklungsrechner dev und auf dem Server prod +#auf dem Entwicklungsrechner dev läuft auf Port 3000 und auf dem Server prod auf Port 80, aber der WebService ist immer auf PORT 80 NEXT_PUBLIC_API_PORT_MODE=dev # Der Unterordner talas5 gleich hinter der IP-Adresse (oder Servername) muss konfigurierbar sein. diff --git a/components/mainComponent/MapComponent.js b/components/mainComponent/MapComponent.js index e6c5fb2bd..2ee7e8fc8 100644 --- a/components/mainComponent/MapComponent.js +++ b/components/mainComponent/MapComponent.js @@ -37,7 +37,7 @@ import CoordinateModal from "../CoordinateModal.js"; import CoordinatePopup from "../CoordinatePopup.js"; //------------------------Daten aus API-------------------- import { fetchPoiData } from "../../services/api/fetchPoiData.js"; -import { fetchGisStationsMeasurements } from "../../services/api/fetchGisStationsMeasurements.js"; +import { fetchGisStationsMeasurementsService } from "../../services/api/fetchGisStationsMeasurementsService.js"; import { selectPolylineVisible, setPolylineVisible } from "../../redux/slices/polylineLayerVisibleSlice.js"; import { fetchLocationDevicesFromDB } from "../../redux/slices/db/locationDevicesFromDBSlice"; import { fetchGisStationsStaticDistrictFromWebService } from "../../redux/slices/webService/gisStationsStaticDistrictSlice"; diff --git a/components/mainComponent/hooks/useFetchPoiData.js b/components/mainComponent/hooks/useFetchPoiData.js index 789d5ec15..ab0a0c9d9 100644 --- a/components/mainComponent/hooks/useFetchPoiData.js +++ b/components/mainComponent/hooks/useFetchPoiData.js @@ -1,4 +1,4 @@ -// /components/mainComponent/hooks/useFetchWebServiceMap.js +// /components/mainComponent/hooks/useFetchPoiData.js import { useEffect, useState } from "react"; const API_BASE_URL = typeof window !== "undefined" ? `${window.location.protocol}//${window.location.hostname}:3000` : ""; diff --git a/components/mainComponent/hooks/useFetchWebServiceMap.js b/components/mainComponent/hooks/useFetchWebServiceMap.js index 80c06089d..bb89441a8 100644 --- a/components/mainComponent/hooks/useFetchWebServiceMap.js +++ b/components/mainComponent/hooks/useFetchWebServiceMap.js @@ -1,7 +1,7 @@ // /components/mainComponent/hooks/useFetchWebServiceMap.js import { useEffect } from "react"; import { fetchGisStationsStatusDistrict } from "../../../services/api/fetchGisStationsStatusDistrict"; -import { fetchGisStationsMeasurements } from "../../../services/api/fetchGisStationsMeasurements"; +import { fetchGisStationsMeasurementsService } from "../../../services/api/fetchGisStationsMeasurementsService"; import { fetchGisSystemStatic } from "../../../services/api/fetchGisSystemStatic"; const useFetchWebServiceMap = (mapGisStationsStatusDistrictUrl, mapGisStationsMeasurementsUrl, mapGisSystemStaticUrl, setGisStationsStatusDistrict, setGisStationsMeasurements, setGisSystemStatic, setGisSystemStaticLoaded) => { @@ -29,8 +29,8 @@ const useFetchWebServiceMap = (mapGisStationsStatusDistrictUrl, mapGisStationsMe // GIS Stations Measurements abrufen //console.log("⏳ Abrufen von GIS Stations Measurements..."); - await fetchGisStationsMeasurements(mapGisStationsMeasurementsUrl, setGisStationsMeasurements, fetchOptions); - // console.log("✅ fetchGisStationsMeasurements erfolgreich!"); + await fetchGisStationsMeasurementsService(mapGisStationsMeasurementsUrl, setGisStationsMeasurements, fetchOptions); + // console.log("✅ fetchGisStationsMeasurementsService erfolgreich!"); requestCount++; localStorage.setItem("fetchWebServiceMap", requestCount); diff --git a/config/appVersion.js b/config/appVersion.js index cf434656d..0ef19eaa0 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.114"; +export const APP_VERSION = "1.1.115"; diff --git a/services/api/fetchDeviceNameById.js b/services/api/fetchDeviceNameByIdService.js similarity index 92% rename from services/api/fetchDeviceNameById.js rename to services/api/fetchDeviceNameByIdService.js index b492896e3..813e53672 100644 --- a/services/api/fetchDeviceNameById.js +++ b/services/api/fetchDeviceNameByIdService.js @@ -1,3 +1,4 @@ +// /services/api/fetchDeviceNameById.js export const fetchDeviceNameById = async (idLD) => { try { const response = await fetch(`/api/talas_v5_DB/locationDevice/locationDeviceNameById?idLD=${idLD}`); diff --git a/services/api/fetchGisStationsMeasurements.js b/services/api/fetchGisStationsMeasurements.js deleted file mode 100644 index 2283dc1f0..000000000 --- a/services/api/fetchGisStationsMeasurements.js +++ /dev/null @@ -1,15 +0,0 @@ -export const fetchGisStationsMeasurements = async (url, setGisStationsMeasurements) => { - try { - const response = await fetch(url); - const jsonResponse = await response.json(); - if (jsonResponse && jsonResponse.Statis) { - setGisStationsMeasurements(jsonResponse.Statis); - } else { - console.error('Erwartete Daten im "Statis"-Array nicht gefunden', jsonResponse); - setGisStationsMeasurements([]); - } - } catch (error) { - console.error("Fehler beim Laden der Daten: ", error); - setGisStationsMeasurements([]); - } -}; diff --git a/services/api/fetchGisStationsMeasurementsService.js b/services/api/fetchGisStationsMeasurementsService.js new file mode 100644 index 000000000..8191a7c2f --- /dev/null +++ b/services/api/fetchGisStationsMeasurementsService.js @@ -0,0 +1,30 @@ +// /services/api/fetchGisStationsMeasurementsService.js + +export const fetchGisStationsMeasurementsService = async () => { + const mode = process.env.NEXT_PUBLIC_API_PORT_MODE; + + const apiBaseUrl = mode === "dev" ? `${window.location.protocol}//${window.location.hostname}:80/talas5/ClientData/WebServiceMap.asmx` : `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`; + + const params = new URLSearchParams(window.location.search); + const idMap = params.get("m"); + const idUser = params.get("u"); + + const url = `${apiBaseUrl}/GisStationsMeasurements?idMap=${idMap}&idUser=${idUser}`; + console.log("📡 fetchGisStationsMeasurementsService URL:", url); + + const response = await fetch(url); + + if (!response.ok) { + const message = `❌ Fehler: ${response.status} ${response.statusText}`; + console.error(message); + throw new Error(message); + } + + const jsonResponse = await response.json(); + + if (!jsonResponse?.Statis) { + throw new Error("Antwortstruktur ungültig – 'Statis' fehlt"); + } + + return jsonResponse.Statis; +}; diff --git a/services/api/fetchGisStationsStaticDistrict.js b/services/api/fetchGisStationsStaticDistrict.js index d11652bce..54a11c5de 100644 --- a/services/api/fetchGisStationsStaticDistrict.js +++ b/services/api/fetchGisStationsStaticDistrict.js @@ -1,3 +1,4 @@ +// /services/api/fetchGisStationsStaticDistrict.js import { setGisStationsStaticDistrict } from "../../redux/slices/webService/gisStationsStaticDistrictSlice"; export const fetchGisStationsStaticDistrict = async (url, dispatch, fetchOptions) => { diff --git a/services/api/fetchGisStationsStatusDistrict.js b/services/api/fetchGisStationsStatusDistrict.js index d9422811f..9ed1b8e60 100644 --- a/services/api/fetchGisStationsStatusDistrict.js +++ b/services/api/fetchGisStationsStatusDistrict.js @@ -1,3 +1,5 @@ +// /services/api/fetchGisStationsStatusDistrict.js + export const fetchGisStationsStatusDistrict = async (url, setGisStationsStatusDistrict) => { try { const response = await fetch(url); diff --git a/services/api/fetchGisSystemStatic.js b/services/api/fetchGisSystemStatic.js index 2b04abc57..cb9a97de5 100644 --- a/services/api/fetchGisSystemStatic.js +++ b/services/api/fetchGisSystemStatic.js @@ -1,3 +1,5 @@ +// /services/api/fetchGisSystemStatic.js + export const fetchGisSystemStatic = async (url, setGisSystemStatic, setGisSystemStaticLoaded) => { try { const response = await fetch(url); diff --git a/services/api/fetchPoiData.js b/services/api/fetchPoiData.js index 7626ed466..fc5c61b1d 100644 --- a/services/api/fetchPoiData.js +++ b/services/api/fetchPoiData.js @@ -1,3 +1,5 @@ +// /services/api/fetchPoiData.js + export const fetchPoiData = async (idPoi) => { try { const response = await fetch(`/api/talas_v5_DB/pois/getPoiById?idPoi=${idPoi}`); diff --git a/services/api/fetchWithTimeout.js b/services/api/fetchWithTimeout.js index d90e29c77..5372a2ad9 100644 --- a/services/api/fetchWithTimeout.js +++ b/services/api/fetchWithTimeout.js @@ -1,3 +1,5 @@ +// services/api/fetchWithTimeout.js + const fetchWithTimeout = (url, options, timeout = 5000) => { const controller = new AbortController(); const id = setTimeout(() => controller.abort(), timeout); diff --git a/services/api/updateLocationInDatabase.js b/services/api/updateLocationInDatabase.js index 4038fbd81..4cec4ca7e 100644 --- a/services/api/updateLocationInDatabase.js +++ b/services/api/updateLocationInDatabase.js @@ -1,3 +1,5 @@ +// /services/api/updateLocationInDatabase.js + export const updateLocationInDatabase = async (id, newLatitude, newLongitude) => { const response = await fetch("/api/talas_v5_DB/pois/updateLocation", { method: "POST",