refactor+docs: fetchGisStatusStations.js URL-Handling vereinheitlicht (v1.1.78)

- entfernt: NEXT_PUBLIC_SERVER_URL aus fetchGisStatusStations.js
- ersetzt durch dynamischen URL-Aufbau via NEXT_PUBLIC_API_PORT_MODE
- neue Doku erstellt: docs/frontend/services/api/fetchGisStatusStations.md
- CHANGELOG.md aktualisiert (v1.1.78)
This commit is contained in:
Ismail Ali
2025-05-17 01:17:59 +02:00
parent b097a76d34
commit e01c6f9324
5 changed files with 106 additions and 3 deletions

View File

@@ -7,7 +7,6 @@ DB_NAME=talas_v5
DB_PORT=3306 DB_PORT=3306
# Public Settings (Client braucht IP/Domain) , Variablen mit dem Präfix "NEXT_PUBLIC" ist in Browser sichtbar # Public Settings (Client braucht IP/Domain) , Variablen mit dem Präfix "NEXT_PUBLIC" ist in Browser sichtbar
NEXT_PUBLIC_SERVER_URL="http://192.168.10.33"
NEXT_PUBLIC_ENABLE_GEOCODER=true NEXT_PUBLIC_ENABLE_GEOCODER=true
NEXT_PUBLIC_USE_MOCK_API=false NEXT_PUBLIC_USE_MOCK_API=false
NEXT_PUBLIC_DEBUG_LOG=true NEXT_PUBLIC_DEBUG_LOG=true

View File

@@ -4,6 +4,22 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie
--- ---
## [1.1.78] 2025-05-17
### Changed
- `fetchGisStatusStations.js`:
- feste URL-Variable `NEXT_PUBLIC_SERVER_URL` entfernt
- stattdessen dynamische URL-Berechnung per `NEXT_PUBLIC_API_PORT_MODE`
- Zugriff auf Webservice `GisStationsStatusDistrict` funktioniert jetzt ohne `.env.local`
### Added
- Dokumentation ergänzt:
- `docs/frontend/services/api/fetchGisStatusStations.md`
---
## [1.1.77] 2025-05-17 ## [1.1.77] 2025-05-17
### Changed ### Changed

View File

@@ -1,2 +1,2 @@
// /config/appVersion // /config/appVersion
export const APP_VERSION = "1.1.78"; export const APP_VERSION = "1.1.79";

View File

@@ -0,0 +1,84 @@
# 🛰️ fetchGisStatusStations Geräte-Statusdaten abrufen
## Zweck
Diese Funktion ruft den aktuellen Status aller Stationen (Geräte) für eine bestimmte Karte ab.
Sie basiert auf dem Webservice `GisStationsStatusDistrict`.
---
## Webservice-Endpunkt
```
GET /talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap={idMap}&idUser={idUser}
```
---
## Dynamische URL-Erzeugung
Die Funktion nutzt **keine feste URL** aus `.env.local`, sondern erkennt die Umgebung anhand von:
```env
NEXT_PUBLIC_API_PORT_MODE=dev
```
### Beispiel aus dem Code:
```js
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
const SERVER_URL =
mode === "dev"
? \`\${window.location.protocol}//\${window.location.hostname}:80\`
: \`\${window.location.origin}\`;
```
---
## Parameter
| Name | Typ | Beschreibung |
|----------|--------|--------------------------|
| `idMap` | string | Karten-ID |
| `idUser` | string | Benutzer-ID |
---
## Verwendung
Die Funktion nutzt `fetchWithTimeout` mit einem Timeout von 5000ms.
```js
fetchWithTimeout(
\`\${SERVER_URL}/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=\${idMap}&idUser=\${idUser}\`,
{ method: "GET", headers: { Connection: "close" } },
5000
)
```
---
## Fehlerbehandlung
Bei HTTP-Fehlern oder Zeitüberschreitung wird ein Fehler geloggt und erneut geworfen.
```js
if (!response.ok) throw new Error(...);
.catch((error) => {
console.error(...);
throw error;
});
```
---
## Siehe auch
- `.env.local``NEXT_PUBLIC_API_PORT_MODE`
- `fetchWithTimeout.js`
- `GisStationsStaticDistrict`, `GisSystemStatic`
---
📄 Pfad: `/docs/frontend/services/api/fetchGisStatusStations.md`

View File

@@ -1,7 +1,11 @@
// /services/api/fetchGisStatusStations.js
import fetchWithTimeout from "./fetchWithTimeout"; import fetchWithTimeout from "./fetchWithTimeout";
export const fetchGisStatusStations = async (idMap, idUser) => { export const fetchGisStatusStations = async (idMap, idUser) => {
const SERVER_URL = process.env.NEXT_PUBLIC_SERVER_URL; const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
const SERVER_URL = mode === "dev" ? `${window.location.protocol}//${window.location.hostname}:80` : `${window.location.origin}`;
return fetchWithTimeout( return fetchWithTimeout(
`${SERVER_URL}/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`, `${SERVER_URL}/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`,
{ {