feat: Refactor utils.js into specialized utility modules

- Split utils.js into three separate files to enhance modularity and maintainability:
  1. geometryUtils.js: Contains geometry-related functions like parsePoint and findClosestPoints.
  2. mapUtils.js: Contains functions related to map operations such as redrawPolyline and saveLineData.
  3. markerUtils.js: Contains functions related to marker operations like insertNewMarker and handleEditPoi.

- Updated import statements in the relevant files to reflect the new structure.
- Ensured that each utility module is self-contained and has clear responsibilities.

This refactor improves the separation of concerns, making the codebase more organized and easier to navigate. Future maintenance and enhancements can now be more easily localized to the appropriate utility module.
This commit is contained in:
ISA
2024-07-09 08:10:02 +02:00
parent 467be2c106
commit b53fe1b3f1
6 changed files with 290 additions and 176 deletions

128
services/apiService.js Normal file
View File

@@ -0,0 +1,128 @@
// services/apiService.js
export const fetchGisStatusStations = async (idMap, idUser) => {
try {
const response = await fetch(
`/api/talas5/webserviceMap/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`
);
if (!response.ok) {
throw new Error(`Error: ${response.statusText}`);
}
const data = await response.json();
console.log("GisStatusStations:", data);
return data;
} catch (error) {
console.error("Fehler beim Abrufen der Daten:", error);
throw error; // Fehler weiter werfen, um ihn in der Komponente behandeln zu können
}
};
// ----------------------------------------------
export const fetchPriorityConfig = async () => {
try {
const response = await fetch("/api/talas_v5_DB/priorityConfig");
const data = await response.json();
console.log("Prioritätskonfiguration:", data);
setPriorityConfig(data);
} catch (error) {
console.error("Fehler beim Laden der Prioritätskonfiguration:", error);
}
};
// ----------------------------------------------
export const fetchPoiData = async (idPoi) => {
const response = await fetch(
`/api/talas_v5_DB/pois/getPoiById?idPoi=${idPoi}`
);
if (!response.ok) {
console.error("Fehler beim Abrufen der POI-Daten");
return;
}
const data = await response.json();
setCurrentPoiData({
idPoi,
name: data.name,
description: data.description,
});
//console.log("POI-Daten2:", currentPoiData);
setShowPoiUpdateModal(true);
};
// ----------------------------------------------
// Funktion zum Aktualisieren der Position in der Datenbank
export const updateLocationInDatabase = async (
id,
newLatitude,
newLongitude
) => {
const response = await fetch("/api/talas_v5_DB/pois/updateLocation", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id,
latitude: newLatitude,
longitude: newLongitude,
}),
});
if (response.ok) {
//schreib die neue Kooridnaten in die Console
//akuellisiere die Position in der Datenbank mit den neuen Koordinaten mit updateLocation mit SQL Anweisung UPDATE
} else {
console.error("Fehler beim Aktualisieren der Position");
}
};
// ----------------------------------------------
// Funktionen zur Überwachung der Internetverbindung
export const checkInternet = () => {
fetch("https://tile.openstreetmap.org/1/1/1.png", { method: "HEAD" })
.then((response) => setOnline(response.ok))
.catch(() => setOnline(false));
};
// ----------------------------------------------
export const fetchUserRights = async () => {
try {
const response = await fetch(
`${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=${c}&idUser=${user}`
//`${serverURL}/api/talas5/webserviceMap/GisSystemStatic?idMap=${c}&idUser=${user}` //Berechtigung zum hinzufügen von POIs in der Karte
//`${serverURL}/api/rights?idMap=${c}&idUser=${user}`
);
const data = await response.json();
//console.log("Benutzerrechte:", data);
const rightsArray = data.Rights; // Nehmen an, dass 'Rights' das Array von Rechten ist
// Speichert die IDs der Rechte in einem Array
const userRightsIds = rightsArray.map((right) => right.IdRight);
setUserRights(userRightsIds); // Speichert die Rechte in den Zustand
//console.log("Benutzerrechte:", rightsArray);
//console.log("Benutzerrechte IDs:", userRightsIds);
//console.log("Benutzerrechte in if :", userRightsIds.includes(56));
setHasRights(userRightsIds.includes(56));
} catch (error) {
console.error("Fehler beim Abrufen der Benutzerrechte", error);
}
};
// ----------------------------------------------
export const fetchDeviceNameById = async (idLD) => {
try {
const response = await fetch(
`/api/talas_v5_DB/locationDevice/locationDeviceNameById?idLD=${idLD}`
);
const data = await response.json();
if (response.ok) {
return data.name;
} else {
throw new Error(data.error || "Gerät nicht gefunden");
}
} catch (error) {
console.error(
"Fehler beim Abrufen des Gerätenamens in MapComponent.js:",
error
);
return "Unbekannt";
}
};