# 📡 Webservices – Redux Integration (/redux/api/fromWebService)

In diesem Verzeichnis befinden sich alle Webservice-Fetch-Funktionen für die Kommunikation mit TALAS.web über SOAP-Endpunkte.

---

## Übergabe der Parameter über URL (`m`, `u`)

TALAS.web ruft die Kartenansicht in der Regel so auf:

```
http://[SERVER]:3000/?m=10&u=484
```

Daraus ergeben sich folgende Zuweisungen:

| URL-Parameter | Bedeutung | Variable im Code                 |
| ------------- | --------- | -------------------------------- |
| `m`           | `idMap`   | `const idMap = params.get("m")`  |
| `u`           | `idUser`  | `const idUser = params.get("u")` |

### Beispiel:

```ts
const params = new URLSearchParams(window.location.search);
const idMap = params.get("m");
const idUser = params.get("u");
```

---

## Änderung am 2025-05-15

Vorher wurden Default-Werte über `.env.local` als Fallback genutzt:

```ts
const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12";
```

Das wurde entfernt, um folgende Ziele zu erreichen:

- ❌ Keine fest eingetragenen Defaults im Browser sichtbar
- ✅ Verbindlichkeit: TALAS.web übergibt die Werte immer korrekt via URL
- 🔐 Sicherheit: Kein versehentliches Verwenden eines falschen Users
- 🔍 Fehler leichter erkennbar (Parameter nicht gefunden = echter Fehler)

---

## Hinweis zur Webservice-Konfiguration

Die Webservice-Basisadresse wird **nicht mehr über `.env.local` gesteuert**.

Stattdessen wird sie dynamisch im Client anhand des aktuellen Hostnamens bestimmt:

```js
const baseUrl = `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
```

➡ Dadurch ist kein Rebuild mehr nötig bei IP-Wechseln oder Serverumzügen.  
Die Build-Version kann auf jedem Server wiederverwendet werden.

---

## Optional: Validierung einbauen

Falls gewünscht, kann ein expliziter Fehler ausgelöst werden:

```ts
if (!idMap || !idUser) {
  throw new Error("Fehlende URL-Parameter: idMap oder idUser");
}
```

---

## Betroffene Dateien

Diese Änderung betrifft alle Funktionen in:

```
/redux/api/fromWebService/fetchGisStationsStatic.js
/redux/api/fromWebService/fetchGisStationsStaticDistrict.js
/redux/api/fromWebService/fetchGisStationsStatusDistrict.js
/redux/api/fromWebService/fetchGisStationsMeasurements.js
/redux/api/fromWebService/fetchGisSystemStatic.js
```

---

Diese Konvention stellt sicher, dass Webservices unabhängig von IP und Serverkonfiguration aufgerufen werden können.
