Files
nodeMap/hooks/useFetchWebServiceMap.js

60 lines
2.4 KiB
JavaScript

// /hooks/useFetchWebServiceMap.js
import { useEffect } from "react";
import { fetchGisStationsStaticDistrict } from "../services/api/fetchGisStationsStaticDistrict";
import { fetchGisStationsStatusDistrict } from "../services/api/fetchGisStationsStatusDistrict";
import { fetchGisStationsMeasurements } from "../services/api/fetchGisStationsMeasurements";
import { fetchGisSystemStatic } from "../services/api/fetchGisSystemStatic";
export const useFetchWebServiceMap = (
dispatch,
mapGisStationsStaticDistrictUrl,
mapGisStationsStatusDistrictUrl,
mapGisStationsMeasurementsUrl,
mapGisSystemStaticUrl,
setGisStationsStatusDistrict,
setGisStationsMeasurements,
setGisSystemStatic,
setGisSystemStaticLoaded
) => {
useEffect(() => {
const fetchWebServiceMap = async () => {
try {
// Zähler für externe API-Aufrufe in localStorage speichern
let requestCount = localStorage.getItem("fetchWebServiceMap") || 0;
requestCount = parseInt(requestCount, 10);
const fetchOptions = {
method: "GET",
headers: {
Connection: "close",
},
};
// Fetch GIS Stations Static District
await fetchGisStationsStaticDistrict(mapGisStationsStaticDistrictUrl, dispatch, fetchOptions);
requestCount++;
localStorage.setItem("fetchWebServiceMap", requestCount);
// Fetch GIS Stations Status District
await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStationsStatusDistrict, fetchOptions);
requestCount++;
localStorage.setItem("fetchWebServiceMap", requestCount);
// Fetch GIS Stations Measurements
await fetchGisStationsMeasurements(mapGisStationsMeasurementsUrl, setGisStationsMeasurements, fetchOptions);
requestCount++;
localStorage.setItem("fetchWebServiceMap", requestCount);
// Fetch GIS System Static
await fetchGisSystemStatic(mapGisSystemStaticUrl, setGisSystemStatic, setGisSystemStaticLoaded, fetchOptions);
requestCount++;
localStorage.setItem("fetchWebServiceMap", requestCount);
} catch (error) {
console.error("Error fetching data:", error);
}
};
fetchWebServiceMap();
}, [dispatch, mapGisStationsStaticDistrictUrl, mapGisStationsStatusDistrictUrl, mapGisStationsMeasurementsUrl, mapGisSystemStaticUrl, setGisStationsStatusDistrict, setGisStationsMeasurements, setGisSystemStatic, setGisSystemStaticLoaded]);
};