Files
nodeMap/services/webservice/fetchGisSystemStaticService.js
Ismail Ali af82ca32c5 feat(mock): implementierte Mock-Daten für 6 Webservice-Endpunkte + Umschaltung via .env
- Hinzugefügt: __mocks__/webservice/
  - gisLinesStatus.js
  - gisStationsMeasurements.js
  - gisStationsStaticDistrict.js
  - gisStationsStatusDistrict.js
  - gisSystemStatic.js
  - userRights.js
- In allen fetch*Service-Dateien Umschaltung implementiert (über NEXT_PUBLIC_USE_MOCKS)
- Fallback auf Mock-Daten bei Entwicklung oder Offline-Modus
- Unterstützt schnelles UI-Testing und isolierte Feature-Entwicklung ohne Backend
2025-05-29 12:12:53 +02:00

44 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// /services/webservice/fetchGisSystemStaticService.js
/**
* Holt GIS-Systemdaten (Systemübersicht) vom TALAS WebService oder aus Mocks.
*
* @returns {Promise<Array>} Liste mit Systems[]
* @throws {Error} bei Fehler oder ungültiger Antwortstruktur
*/
export const fetchGisSystemStaticService = async () => {
const useMocks = process.env.NEXT_PUBLIC_USE_MOCKS === "true";
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
const basePath = process.env.NEXT_PUBLIC_BASE_PATH || "";
if (useMocks) {
console.log("🧪 Mock-Modus aktiviert: fetchGisSystemStaticService");
const { mockGisSystemStatic } = await import("../../__mocks__/webservice/gisSystemStatic.js");
return mockGisSystemStatic.Systems;
} else {
const baseUrl = mode === "dev" ? `${window.location.protocol}//${window.location.hostname}:80${basePath}/ClientData/WebServiceMap.asmx` : `${window.location.origin}${basePath}/ClientData/WebServiceMap.asmx`;
const params = new URLSearchParams(window.location.search);
const idMap = params.get("m");
const idUser = params.get("u");
const url = `${baseUrl}/GisSystemStatic?idMap=${idMap}&idUser=${idUser}`;
console.log("📡 fetchGisSystemStaticService von service 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 (!Array.isArray(jsonResponse?.Systems)) {
throw new Error("Antwortstruktur ungültig 'Systems' fehlt oder ist kein Array");
}
return jsonResponse.Systems;
}
};