mockApi erstellt, um die Eingabe zu simulieren, aber funktioniert nocht nicht ganz

This commit is contained in:
ISA
2025-03-05 12:37:08 +01:00
parent 3a21abd4bb
commit 82001a4beb
20 changed files with 294 additions and 763 deletions

View File

@@ -1,5 +0,0 @@
export const checkInternet = () => {
fetch("https://tile.openstreetmap.org/1/1/1.png", { method: "HEAD" })
.then((response) => setOnline(response.ok))
.catch(() => setOnline(false));
};

View File

@@ -1,172 +0,0 @@
// services/apiService.js
import * as config from "../config/config";
import * as urls from "../config/urls";
let timeoutId;
const fetchWithTimeout = async (url, options, timeout = 5000) => {
const controller = new AbortController();
const id = setTimeout(() => controller.abort(), timeout);
try {
const response = await fetch(url, {
...options,
signal: controller.signal,
});
clearTimeout(id);
return response;
} catch (error) {
clearTimeout(id); // Im Falle eines Fehlers den Timeout abbrechen
throw error;
}
};
export const fetchGisStatusStations = async (idMap, idUser) => {
// Verhindere wiederholte schnelle API-Aufrufe durch Debouncing
if (timeoutId) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(async () => {
const SERVER_URL = process.env.NEXT_PUBLIC_SERVER_URL;
try {
// Verwende das Timeout für die API-Anfrage
const response = await fetchWithTimeout(
`${SERVER_URL}/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`,
{
method: "GET",
headers: {
Connection: "close", // Dieser Header stellt sicher, dass die Verbindung nach dem Abruf geschlossen wird
},
},
5000 // Timeout auf 5 Sekunden gesetzt
);
if (!response.ok) {
throw new Error(`Error: ${response.statusText}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error("Fehler beim Abrufen der Daten in /services/apiService.js :", error);
throw error;
}
}, 500); // Debounce-Zeit auf 500ms gesetzt
};
// ----------------------------------------------
/* 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) => {
try {
const response = await fetch(`/api/talas_v5_DB/pois/getPoiById?idPoi=${idPoi}`);
if (!response.ok) {
throw new Error("Fehler beim Abrufen der POI-Daten");
}
const data = await response.json();
return {
idPoi,
name: data.name,
description: data.description,
idLD: data.idLD,
};
} catch (error) {
console.error("Fehler beim Abrufen der POI-Daten", error);
return null;
}
};
// ----------------------------------------------
// 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 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");
throw new Error("Gerät nicht gefunden in apiService.js");
}
} catch (error) {
console.error("Fehler beim Abrufen des Gerätenamens in apiService.js:", error);
return "Unbekannt";
}
};
// ----------------------------------------------
// services/apiService.js
export const fetchUserRights = async () => {
// Zähler für API-Aufrufe in localStorage speichern
let userRightsRequestCount = localStorage.getItem("userRightsRequestCount") || 0;
userRightsRequestCount++;
localStorage.setItem("userRightsRequestCount", userRightsRequestCount);
console.log(`fetchUserRights wurde ${userRightsRequestCount} Mal aufgerufen.`);
try {
const response = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=${config.idMap}&idUser=${config.idUser}`, {
method: "GET",
headers: {
Connection: "close",
},
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
// Überprüfen der Struktur der Antwort
if (!data || !data.Rights || !Array.isArray(data.Rights)) {
throw new Error("Invalid response structure");
}
const rightsArray = data.Rights; // Nehmen an, dass 'Rights' das Array von Rechten ist
const userRightsIds = rightsArray.map((right) => right.IdRight);
return userRightsIds;
} catch (error) {
console.error("Fehler beim Abrufen der Benutzerrechte", error);
return [];
}
};

View File

@@ -1,64 +0,0 @@
// services/fetchData.js
import { setGisStationsStaticDistrict } from "../redux/slices/gisStationsStaticDistrictSlice";
export const fetchGisStationsStaticDistrict = async (url, dispatch, fetchOptions) => {
try {
const response = await fetch(url, fetchOptions);
const jsonResponse = await response.json();
if (jsonResponse && jsonResponse.Points) {
dispatch(setGisStationsStaticDistrict(jsonResponse.Points));
} else {
console.error('Erwartete Daten im "Points"-Array nicht gefunden', jsonResponse);
dispatch(setGisStationsStaticDistrict([]));
}
} catch (error) {
console.error("Fehler beim Laden der Daten: ", error);
dispatch(setGisStationsStaticDistrict([]));
}
};
export const fetchGisStationsStatusDistrict = async (url, setGisStationsStatusDistrict) => {
try {
const response = await fetch(url);
const jsonResponse = await response.json();
if (jsonResponse && jsonResponse.Statis) {
setGisStationsStatusDistrict(jsonResponse.Statis);
} else {
console.error('Erwartete Daten im "Statis"-Array nicht gefunden', jsonResponse);
setGisStationsStatusDistrict([]);
}
} catch (error) {
console.error("Fehler beim Laden der Daten: ", error);
setGisStationsStatusDistrict([]);
}
};
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([]);
}
};
export const fetchGisSystemStatic = async (url, setGisSystemStatic, setGisSystemStaticLoaded) => {
try {
const response = await fetch(url);
const jsonResponse = await response.json();
if (jsonResponse && jsonResponse.Systems) {
setGisSystemStatic(jsonResponse.Systems);
setGisSystemStaticLoaded(true);
} else {
console.error('Erwartete Daten im "Systems"-Array nicht gefunden', jsonResponse);
setGisSystemStatic([]);
}
} catch (error) {
console.error("Fehler beim Laden der Daten: ", error);
setGisSystemStatic([]);
}
};

View File

@@ -0,0 +1,13 @@
export const fetchDeviceNameById = async (idLD) => {
console.log("⚠️ Mock-API: fetchDeviceNameById wird verwendet!");
// Simulierte Rückgabe basierend auf der ID (du kannst hier mehrere Fälle abdecken)
const mockData = {
50922: "CPL Ismael",
50950: "LTEModem",
50951: "GMA ISA",
// hier kannst du beliebig weitere hinzufügen, wenn du möchtest
};
return mockData[idLD] || "Unbekanntes Gerät";
};

View File

@@ -0,0 +1,23 @@
export const fetchGisStationsMeasurements = async (url, setGisStationsMeasurements) => {
console.log("⚠️ Mock-API: fetchGisStationsMeasurements wird verwendet!");
const mockData = {
Name: "Liste aller Messungen der Geraete",
Zeitstempel: "2025-03-05T12:23:16.0756875+01:00",
IdMap: "12",
Statis: [
{
IdLD: 50951,
IdL: 24101,
IdDP: 3,
Na: "FBT",
Val: "5",
Unit: "°C", // Umlaut korrigiert
Gr: "GMA",
Area_Name: "Rastede",
},
],
};
setGisStationsMeasurements(mockData.Statis); // Die Komponente erwartet direkt das Array
};

View File

@@ -0,0 +1,68 @@
export const fetchGisStationsStaticDistrict = async (url, dispatch, fetchOptions) => {
console.log("⚠️ Mock-API: fetchGisStationsStaticDistrict wird verwendet!");
const mockData = {
Name: "Liste aller Geraete einer bestimmten Karte",
Zeitstempel: "2025-03-05T10:51:20.8210755+01:00",
IdMap: "12",
Points: [
{
LD_Name: "CPL Ismael",
IdLD: 50922,
Device: "CPL V3.5 mit 24 Kü",
Link: "cpl.aspx?ver=35&kue=24&id=50922",
Location_Name: "Littwin",
Location_Short: "LTW",
IdLocation: 24101,
Area_Name: "Rastede",
Area_Short: "",
IdArea: 20998,
X: 53.246112,
Y: 8.162241,
Icon: 20,
System: 1,
Active: 1,
},
{
LD_Name: "LTEModem",
IdLD: 50950,
Device: "LTE Modem LR77",
Link: "lr77.aspx?ver=1&id=50950",
Location_Name: "Littwin",
Location_Short: "LTW",
IdLocation: 24101,
Area_Name: "Rastede",
Area_Short: "",
IdArea: 20998,
X: 53.246112,
Y: 8.162241,
Icon: 12,
System: 5,
Active: 1,
},
{
LD_Name: "GMA ISA",
IdLD: 50951,
Device: "Glättemeldeanlage",
Link: "gma.aspx?ver=1&id=50951",
Location_Name: "Littwin",
Location_Short: "LTW",
IdLocation: 24101,
Area_Name: "Rastede",
Area_Short: "",
IdArea: 20998,
X: 53.246112,
Y: 8.162241,
Icon: 1,
System: 11,
Active: 1,
},
// Die restlichen Daten fügst du genauso ein
],
};
dispatch({
type: "SET_GIS_STATIONS",
payload: mockData.Points,
});
};

View File

@@ -0,0 +1,25 @@
export const fetchGisStationsStatusDistrict = async (url, setGisStationsStatusDistrict) => {
console.log("⚠️ Mock-API: fetchGisStationsStatusDistrict wird verwendet!");
const mockData = {
Name: "Liste aller Statis der Geraete",
Zeitstempel: "2025-03-05T09:19:55.0004433+01:00",
IdMap: "12",
Statis: [
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 01 test", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 05 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 17 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 31 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 32 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Station offline", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "minor", Le: 3, Co: "#FFFF00", Me: "Eingang DE 02 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "minor", Le: 3, Co: "#FFFF00", Me: "KÜG 08: Überspannung gehend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "major", Le: 2, Co: "#FF9900", Me: "Eingang DE 03 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "critical", Le: 1, Co: "#FF0000", Me: "KÜG 01: Aderbruch kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "critical", Le: 1, Co: "#FF0000", Me: "KÜG 02: Aderbruch kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "critical", Le: 1, Co: "#FF0000", Me: "KÜG 03: Aderbruch kommend", Feld: 4, Icon: 0 },
],
};
setGisStationsStatusDistrict(mockData.Statis); // Die Komponente erwartet direkt das Array
};

View File

@@ -0,0 +1,25 @@
export const fetchGisStationsStatusDistrict = async (url, setGisStationsStatusDistrict, fetchOptions) => {
console.log("⚠️ Mock-API: fetchGisStationsStatusDistrict wird verwendet!");
const mockData = {
Name: "Liste aller Statis der Geraete",
Zeitstempel: "2025-03-05T12:26:29.4884924+01:00",
IdMap: "12",
Statis: [
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 01 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 05 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 17 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 31 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Eingang DE 32 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "system", Le: 4, Co: "#FF00FF", Me: "Station offline", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "minor", Le: 3, Co: "#FFFF00", Me: "Eingang DE 02 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "minor", Le: 3, Co: "#FFFF00", Me: "KÜG 08: Überspannung gehend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "major", Le: 2, Co: "#FF9900", Me: "Eingang DE 03 kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "critical", Le: 1, Co: "#FF0000", Me: "KÜG 01: Aderbruch kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "critical", Le: 1, Co: "#FF0000", Me: "KÜG 02: Aderbruch kommend", Feld: 4, Icon: 0 },
{ IdLD: 50922, Na: "critical", Le: 1, Co: "#FF0000", Me: "KÜG 03: Aderbruch kommend", Feld: 4, Icon: 0 },
],
};
setGisStationsStatusDistrict(mockData.Statis); // Direkt das Array übergeben
};

View File

@@ -0,0 +1,14 @@
export const fetchGisSystemStatic = async (url, setGisSystemStatic, setGisSystemStaticLoaded) => {
console.log("⚠️ Mock-API: fetchGisSystemStatic wird verwendet!");
const mockData = {
Systems: [
{ IdSystem: 1, Name: "System A", Allow: 1 },
{ IdSystem: 2, Name: "System B", Allow: 0 },
{ IdSystem: 3, Name: "System C", Allow: 1 },
],
};
setGisSystemStatic(mockData.Systems);
setGisSystemStaticLoaded(true);
};

View File

@@ -0,0 +1,12 @@
export const fetchPoiData = async (idPoi) => {
console.log("⚠️ Mock-API: fetchPoiData wird verwendet!");
const mockPoiData = {
1: { name: "Test POI 1", description: "Beschreibung für POI 1", idLD: 1001 },
2: { name: "Test POI 2", description: "Beschreibung für POI 2", idLD: 1002 },
3: { name: "Test POI 3", description: "Beschreibung für POI 3", idLD: 1003 },
// hier kannst du weitere POIs ergänzen
};
return mockPoiData[idPoi] || { name: "Unbekannter POI", description: "-", idLD: 0 };
};

View File

@@ -0,0 +1,59 @@
export const fetchUserRights = async () => {
console.log("⚠️ Mock-API: fetchUserRights wird verwendet!");
const mockData = {
Rights: [
{ IdRight: 1 },
{ IdRight: 2 },
{ IdRight: 3 },
{ IdRight: 5 },
{ IdRight: 6 },
{ IdRight: 7 },
{ IdRight: 8 },
{ IdRight: 10 },
{ IdRight: 11 },
{ IdRight: 12 },
{ IdRight: 20 },
{ IdRight: 22 },
{ IdRight: 23 },
{ IdRight: 25 },
{ IdRight: 30 },
{ IdRight: 40 },
{ IdRight: 41 },
{ IdRight: 42 },
{ IdRight: 43 },
{ IdRight: 44 },
{ IdRight: 45 },
{ IdRight: 46 },
{ IdRight: 47 },
{ IdRight: 48 },
{ IdRight: 49 },
{ IdRight: 50 },
{ IdRight: 51 },
{ IdRight: 52 },
{ IdRight: 55 },
{ IdRight: 56 },
{ IdRight: 60 },
{ IdRight: 61 },
{ IdRight: 62 },
{ IdRight: 63 },
{ IdRight: 64 },
{ IdRight: 65 },
{ IdRight: 68 },
{ IdRight: 69 },
{ IdRight: 70 },
{ IdRight: 71 },
{ IdRight: 72 },
{ IdRight: 73 },
{ IdRight: 79 },
{ IdRight: 80 },
{ IdRight: 90 },
{ IdRight: 93 },
{ IdRight: 94 },
{ IdRight: 95 },
{ IdRight: 96 },
],
};
return mockData.Rights.map((right) => right.IdRight);
};