feat: handleSave final auf API-Handler für Development erweitert
- Änderungen in Dev-Umgebung werden per /api/cpl/updateKueDataAPIHandler gespeichert - Production weiterhin GET-Request mit Parametern - Fehlerbehandlung optimiert
This commit is contained in:
7
apiMockData/SERVICE/kueDataMockData.js
Normal file
7
apiMockData/SERVICE/kueDataMockData.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
window.win_kueID = ["FTZ_2","B23","Kabel 3","Kabel 4","Kabel 5","Kabel 6","FTZ4562","Kabel 8","12344","Kabel 10","Kabel 11","Kabel 12","Kabel 13","Kabel 14","Kabel 15","H56-77","Kabel 17","Kabel 18","Kabel 19","Kabel 20","Kabel 21","Kabel 22","Kabel 23","Kabel 24","Kabel 25","Kabel 26","Kabel 27","Kabel 28","Kabel 29","Kabel 30","Kabel 31","Kabel 32"];
|
||||||
|
window.win_kuePSTmMinus96V = ["FTZ_2","B23","Kabel 3","Kabel 4","Kabel 5","Kabel 6","FTZ4562","Kabel 8","12344","Kabel 10","Kabel 11","Kabel 12","Kabel 13","Kabel 14","Kabel 15","H56-77","Kabel 17","Kabel 18","Kabel 19","Kabel 20","Kabel 21","Kabel 22","Kabel 23","Kabel 24","Kabel 25","Kabel 26","Kabel 27","Kabel 28","Kabel 29","Kabel 30","Kabel 31","Kabel 32"];
|
||||||
|
window.win_kueLimit1 = ["8.8",10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10];
|
||||||
|
window.win_kueDelay1 = [10,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420];
|
||||||
|
window.win_kueLimit2Low = [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1];
|
||||||
|
window.win_kueLimit2High = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
|
||||||
|
window.win_kueLoopInterval = [6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6];
|
||||||
@@ -12,8 +12,8 @@ export interface OriginalValues {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface HandleSaveParams {
|
interface HandleSaveParams {
|
||||||
ids: string[]; // kueID im Redux-Slice
|
ids: string[];
|
||||||
bezeichnungen: string[]; // kueBezeichnungen im Redux-Slice
|
bezeichnungen: string[];
|
||||||
isolationsgrenzwerte: number[];
|
isolationsgrenzwerte: number[];
|
||||||
verzoegerung: number[];
|
verzoegerung: number[];
|
||||||
untereSchleifenGrenzwerte: number[];
|
untereSchleifenGrenzwerte: number[];
|
||||||
@@ -26,7 +26,7 @@ interface HandleSaveParams {
|
|||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleSave = ({
|
const handleSave = async ({
|
||||||
ids,
|
ids,
|
||||||
bezeichnungen,
|
bezeichnungen,
|
||||||
isolationsgrenzwerte,
|
isolationsgrenzwerte,
|
||||||
@@ -39,7 +39,7 @@ const handleSave = ({
|
|||||||
dispatch,
|
dispatch,
|
||||||
onModulNameChange,
|
onModulNameChange,
|
||||||
onClose,
|
onClose,
|
||||||
}: HandleSaveParams): void => {
|
}: HandleSaveParams): Promise<void> => {
|
||||||
const changes: Partial<{
|
const changes: Partial<{
|
||||||
KID: string;
|
KID: string;
|
||||||
KIA: string;
|
KIA: string;
|
||||||
@@ -81,38 +81,54 @@ const handleSave = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Object.keys(changes).length > 0) {
|
if (Object.keys(changes).length > 0) {
|
||||||
let url = `/cpl?/kabelueberwachung.html&slot=${slot}`;
|
const isDev = window.location.hostname === "localhost";
|
||||||
Object.entries(changes).forEach(([paramKey, paramValue]) => {
|
|
||||||
if (paramValue !== undefined) {
|
|
||||||
url += `&${paramKey}${slot}=${encodeURIComponent(paramValue)}`;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
fetch(url, { method: "GET" })
|
if (isDev) {
|
||||||
.then((response) => {
|
await fetch("/api/cpl/updateKueDataAPIHandler", {
|
||||||
if (response.ok) {
|
method: "POST",
|
||||||
alert("Daten erfolgreich gespeichert!");
|
headers: { "Content-Type": "application/json" },
|
||||||
onModulNameChange(ids[slot]);
|
body: JSON.stringify({
|
||||||
|
data: {
|
||||||
dispatch(
|
kueID: ids,
|
||||||
setKueData({
|
kueBezeichnungen: bezeichnungen,
|
||||||
kueID: [...ids],
|
isolationsgrenzwerte,
|
||||||
kueBezeichnungen: [...bezeichnungen],
|
verzoegerung,
|
||||||
isolationsgrenzwerte: [...isolationsgrenzwerte],
|
untereSchleifenGrenzwerte,
|
||||||
verzoegerung: [...verzoegerung],
|
obereSchleifenGrenzwerte,
|
||||||
untereSchleifenGrenzwerte: [...untereSchleifenGrenzwerte],
|
schleifenintervall,
|
||||||
obereSchleifenGrenzwerte: [...obereSchleifenGrenzwerte],
|
},
|
||||||
schleifenintervall: [...schleifenintervall],
|
}),
|
||||||
})
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
alert("Fehler beim Speichern der Daten!");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
console.error("Fehler:", error);
|
|
||||||
alert("Fehler beim Senden der Daten!");
|
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
let url = `/cpl?/kabelueberwachung.html&slot=${slot}`;
|
||||||
|
Object.entries(changes).forEach(([paramKey, paramValue]) => {
|
||||||
|
if (paramValue !== undefined) {
|
||||||
|
url += `&${paramKey}${slot}=${encodeURIComponent(paramValue)}`;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const response = await fetch(url, { method: "GET" });
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
alert("Fehler beim Speichern der Daten!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
alert("Daten erfolgreich gespeichert!");
|
||||||
|
onModulNameChange(ids[slot]);
|
||||||
|
|
||||||
|
dispatch(
|
||||||
|
setKueData({
|
||||||
|
kueID: [...ids],
|
||||||
|
kueBezeichnungen: [...bezeichnungen],
|
||||||
|
isolationsgrenzwerte: [...isolationsgrenzwerte],
|
||||||
|
verzoegerung: [...verzoegerung],
|
||||||
|
untereSchleifenGrenzwerte: [...untereSchleifenGrenzwerte],
|
||||||
|
obereSchleifenGrenzwerte: [...obereSchleifenGrenzwerte],
|
||||||
|
schleifenintervall: [...schleifenintervall],
|
||||||
|
})
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
alert("Keine Änderungen vorgenommen.");
|
alert("Keine Änderungen vorgenommen.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
const webVersion = "1.6.236";
|
const webVersion = "1.6.237";
|
||||||
export default webVersion;
|
export default webVersion;
|
||||||
|
|||||||
52
pages/api/cpl/updateKueDataAPIHandler.ts
Normal file
52
pages/api/cpl/updateKueDataAPIHandler.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
// /pages/api/cpl/updateKueDataAPIHandler.ts
|
||||||
|
import { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
import path from "path";
|
||||||
|
import fs from "fs/promises";
|
||||||
|
|
||||||
|
export default async function handler(
|
||||||
|
req: NextApiRequest,
|
||||||
|
res: NextApiResponse
|
||||||
|
) {
|
||||||
|
if (req.method !== "POST") {
|
||||||
|
return res.status(405).json({ error: "Method not allowed" });
|
||||||
|
}
|
||||||
|
|
||||||
|
const { data } = req.body;
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
return res.status(400).json({ error: "No data provided" });
|
||||||
|
}
|
||||||
|
|
||||||
|
const filePath = path.join(
|
||||||
|
process.cwd(),
|
||||||
|
"apiMockData",
|
||||||
|
"SERVICE",
|
||||||
|
"kueDataMockData.js"
|
||||||
|
);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const fileContent =
|
||||||
|
`window.win_kueID = ${JSON.stringify(data.kueID)};\n` +
|
||||||
|
`window.win_kuePSTmMinus96V = ${JSON.stringify(
|
||||||
|
data.kueBezeichnungen
|
||||||
|
)};\n` +
|
||||||
|
`window.win_kueLimit1 = ${JSON.stringify(data.isolationsgrenzwerte)};\n` +
|
||||||
|
`window.win_kueDelay1 = ${JSON.stringify(data.verzoegerung)};\n` +
|
||||||
|
`window.win_kueLimit2Low = ${JSON.stringify(
|
||||||
|
data.untereSchleifenGrenzwerte
|
||||||
|
)};\n` +
|
||||||
|
`window.win_kueLimit2High = ${JSON.stringify(
|
||||||
|
data.obereSchleifenGrenzwerte
|
||||||
|
)};\n` +
|
||||||
|
`window.win_kueLoopInterval = ${JSON.stringify(
|
||||||
|
data.schleifenintervall
|
||||||
|
)};\n`;
|
||||||
|
|
||||||
|
await fs.writeFile(filePath, fileContent, "utf-8");
|
||||||
|
|
||||||
|
res.status(200).json({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Fehler beim Schreiben der Datei:", error);
|
||||||
|
res.status(500).json({ error: "Failed to write file" });
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user