From a300ad9f6b07f23ecb40dc7e7a7469c59afc1416 Mon Sep 17 00:00:00 2001 From: Ismail Ali Date: Thu, 17 Apr 2025 23:46:28 +0200 Subject: [PATCH] =?UTF-8?q?feat(loop):=20Mock-Backend=20f=C3=BCr=20Schleif?= =?UTF-8?q?enmessung=20=C3=BCber=20ENV-Flag=20integriert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START in .env.development hinzugefügt - goLoop.ts aktualisiert, um im Mock-Modus die Dummy-API (/api/cpl/loopMessungStartenMockHandler) aufzurufen - Neuer Mock-Handler loopMessungStartenMockHandler.ts erstellt, der eine simulierte Antwort zurückgibt Damit können Entwickler die Schleifenmessung lokal testen, ohne echte Hardware. --- .env.development | 1 + config/webVersion.ts | 2 +- .../api/cpl/loopMessungStartenMockHandler.ts | 8 ++ utils/goLoop.ts | 73 ++++++++++++------- 4 files changed, 55 insertions(+), 29 deletions(-) create mode 100644 pages/api/cpl/loopMessungStartenMockHandler.ts diff --git a/.env.development b/.env.development index f72321b..c466eab 100644 --- a/.env.development +++ b/.env.development @@ -2,3 +2,4 @@ NEXT_PUBLIC_NODE_ENV=development NEXT_PUBLIC_ENCRYPTION_KEY=1 NEXT_PUBLIC_ENCRYPTION_IV=1 NEXT_PUBLIC_USE_MOCK_BACKEND_TDR_START=true +NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false diff --git a/config/webVersion.ts b/config/webVersion.ts index ea07764..7eafde6 100644 --- a/config/webVersion.ts +++ b/config/webVersion.ts @@ -6,5 +6,5 @@ 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). */ -const webVersion = "1.6.243"; +const webVersion = "1.6.244"; export default webVersion; diff --git a/pages/api/cpl/loopMessungStartenMockHandler.ts b/pages/api/cpl/loopMessungStartenMockHandler.ts new file mode 100644 index 0000000..e9f3801 --- /dev/null +++ b/pages/api/cpl/loopMessungStartenMockHandler.ts @@ -0,0 +1,8 @@ +export default function handler(req, res) { + const { slot } = req.query; + setTimeout(() => { + res + .status(200) + .json({ message: `Schleifenmessung simuliert für Slot ${slot}` }); + }, 1000); +} diff --git a/utils/goLoop.ts b/utils/goLoop.ts index 5580b32..1416f86 100644 --- a/utils/goLoop.ts +++ b/utils/goLoop.ts @@ -1,36 +1,53 @@ -export const goLoop = ( +// /utils/goLoop.ts +export const goLoop = async ( slotIndex: number, setLoading: (loading: boolean) => void ) => { - if (slotIndex >= 32) { + if (slotIndex >= 32) return; + + setLoading(true); + + const isMock = process.env.NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START === "true"; + + if (isMock) { + // 🔁 MOCK-MODUS + try { + const response = await fetch( + `/api/cpl/loopMessungStartenMockHandler?slot=${slotIndex + 1}` + ); + const data = await response.json(); + + alert(`(MOCK) ${data.message}`); + console.log("(MOCK)", data.message); + } catch (error) { + console.error("(MOCK) Fehler:", error); + } finally { + setLoading(false); + } return; } - const slotFormat = slotIndex < 10 ? `${slotIndex}` : `${slotIndex}`; - - setLoading(true); - alert(`Schleifenmessung wird für Slot ${slotIndex + 1} gestartet...`); - - fetch(`/CPL?kabelueberwachung.html&KS_${slotFormat}=1&slot=${slotIndex}`, { - method: "GET", - }) - .then((response) => { - if (response.ok) { - alert( - `Schleifenmessung erfolgreich gestartet für Slot ${slotIndex + 1}` - ); - console.log( - "Schleifenmessung erfolgreich gestartet für Slot", - slotIndex - ); - } else { - alert("Fehler beim Starten der Schleifenmessung."); - console.error("Fehler beim Senden der Schleifen-Anfrage"); + // 🚀 ECHTER Backend-Request + try { + const slotFormat = slotIndex < 10 ? `${slotIndex}` : `${slotIndex}`; + const response = await fetch( + `/CPL?kabelueberwachung.html&KS_${slotFormat}=1&slot=${slotIndex}`, + { + method: "GET", } - }) - .catch((error) => { - alert("Ein Fehler ist aufgetreten."); - console.error("Fehler:", error); - }) - .finally(() => setLoading(false)); + ); + + if (response.ok) { + alert(`Schleifenmessung erfolgreich gestartet für Slot ${slotIndex + 1}`); + console.log("Schleifenmessung gestartet für Slot", slotIndex); + } else { + alert("Fehler beim Starten der Schleifenmessung."); + console.error("Fehler beim Senden der Schleifen-Anfrage"); + } + } catch (error) { + alert("Ein Fehler ist aufgetreten."); + console.error("Fehler:", error); + } finally { + setLoading(false); + } };