From 40e2b548365f117dd6ccef60f8419541b43c0ff5 Mon Sep 17 00:00:00 2001 From: ISA Date: Tue, 29 Apr 2025 10:30:21 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20fetchAnalogInputsHistoryService=20mit?= =?UTF-8?q?=20dynamischem=20Fallback=20f=C3=BCr=20Mock-=20und=20Live-Daten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - In der Entwicklungsumgebung werden lokale Mock-Dateien verwendet - In Produktion werden Live-Messdaten der CPL über DIA0 geladen - Automatische Datumsgenerierung von gestern bis heute integriert --- config/webVersion.ts | 2 +- services/fetchAnalogInputsHistoryService.ts | 36 ++++++++++++++------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/config/webVersion.ts b/config/webVersion.ts index 5c01b73..a8f28a3 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.304"; +const webVersion = "1.6.305"; export default webVersion; diff --git a/services/fetchAnalogInputsHistoryService.ts b/services/fetchAnalogInputsHistoryService.ts index fcb5770..6a277dc 100644 --- a/services/fetchAnalogInputsHistoryService.ts +++ b/services/fetchAnalogInputsHistoryService.ts @@ -1,10 +1,8 @@ -// services/fetchAnalogInputHistoryService.ts +// services/fetchAnalogInputsHistoryService.ts -export async function fetchAnalogInputHistoryService(): Promise< +export async function fetchAnalogInputsHistoryService(): Promise< Record > { - const baseUrl = `${window.location.origin}/CPL?Service/empty.acp`; - const today = new Date(); const yesterday = new Date(today); yesterday.setDate(today.getDate() - 1); @@ -20,18 +18,34 @@ export async function fetchAnalogInputHistoryService(): Promise< const result: Record = {}; + const isDev = process.env.NODE_ENV === "development"; + for (let i = 0; i < 8; i++) { - const sourceId = 100 + i; - const url = `${baseUrl}&DIA0=${fromDate};${toDate};${sourceId};1`; + const inputNumber = i + 1; // 1–8 + const sourceId = 99 + inputNumber; // 100–107 für AE1–AE8 try { - const response = await fetch(url); - if (!response.ok) - throw new Error(`Fehler bei AE${i + 1}: ${response.status}`); - const data = await response.json(); + let data: any[]; + + if (isDev) { + // ⬇️ Lädt lokale Mock-Dateien (z. B. /api/cpl/fetchAnalogInputsHistory) + const response = await fetch( + `/apiMockData/analogInputsHistoryData/analogInput${inputNumber}.json` + ); + if (!response.ok) throw new Error("Mock-Daten nicht verfügbar"); + data = await response.json(); + } else { + // ⬇️ Holt Live-Daten über CPL-HTTP-Endpunkt + const url = `${window.location.origin}/CPL?Service/empty.acp&DIA0=${fromDate};${toDate};${sourceId};1`; + const response = await fetch(url); + if (!response.ok) + throw new Error(`Fehler bei AE${inputNumber}: ${response.status}`); + data = await response.json(); + } + result[sourceId] = data; } catch (error) { - console.error(`Fehler beim Laden von AE${i + 1}:`, error); + console.error(`❌ Fehler beim Laden von AE${inputNumber}:`, error); result[sourceId] = []; } }