delete: Dateien in pages/api, weil in Frontend wird benutzt

This commit is contained in:
ISA
2025-05-26 14:26:01 +02:00
parent 873ce0ba5e
commit 32a85cc30a
10 changed files with 1 additions and 457 deletions

View File

@@ -1,57 +0,0 @@
// pages/api//deviceColorFinder.js
// API für Gerätekonfiguration basierend auf dynamischer idLD
import getPool from "../../utils/mysqlPool"; // Singleton-Pool importieren
export default async function handler(req, res) {
const pool = getPool(); // Singleton-Pool verwenden
let connection;
try {
// Holen Sie die idLD aus der Query (z.B. /api/talas_v5_DB/deviceConfig?idLD=50922)
const { idLD } = req.query;
// Überprüfen, ob idLD übergeben wurde
if (!idLD) {
return res.status(400).json({ error: "idLD ist erforderlich" });
}
// Verbindung zur Datenbank aufbauen
connection = await pool.getConnection();
// SQL-Abfrage ausführen
const query = `
SELECT
l.idLD AS location_id,
l.name AS location_name,
p.idprio AS prio_id,
p.name AS prio_name,
p.color AS prio_color,
p.level AS prio_level,
d.idDP AS datapoint_id,
d.name AS datapoint_name
FROM
location_device l
JOIN
datapoint d
ON
l.idLD = d.idLD
JOIN
prio p
ON
p.idprio = d.idprio
WHERE
l.idLD = ?;`;
const [results] = await connection.query(query, [idLD]);
// Antwort zurücksenden
res.status(200).json(results);
} catch (error) {
console.error("Fehler beim Abrufen der API", error);
res.status(500).json({ error: "Fehler bei der Abfrage" });
} finally {
// Verbindung freigeben
if (connection) connection.release();
}
}

View File

@@ -1,20 +0,0 @@
// pages/api/get-talasIP.js
export default function handler(req, res) {
// Der x-forwarded-for Header könnte mehrere IP-Adressen enthalten, getrennt durch Kommas
let clientIp =
req.headers["x-forwarded-for"]?.split(",").map((ip) => ip.trim())[0] ||
req.socket.remoteAddress;
// Entfernen möglicher IPv6 "mapped" IPv4 Adressen
if (clientIp?.includes("::ffff:")) {
clientIp = clientIp.split("::ffff:")[1];
}
// Nur IPv4 Adressen weitergeben, IPv6 Adressen ausschließen
if (clientIp && clientIp.includes(":")) {
clientIp = ""; // Dies setzt die IP auf leer, wenn es sich um eine IPv6-Adresse handelt
}
res.status(200).json({ ip: clientIp });
}

View File

@@ -1,59 +0,0 @@
// /pages/api/gis-proxy.js
export default async function handler(req, res) {
// CORS-Header setzen
res.setHeader("Access-Control-Allow-Credentials", true);
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "POST,OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, SOAPAction");
// OPTIONS-Preflight-Anfrage sofort beenden
if (req.method === "OPTIONS") {
res.status(200).end();
return;
}
// Ziel-URL direkt auf die Methode
const baseUrl = process.env.NEXT_PUBLIC_GIS_SERVER_URL;
const targetUrl = `${baseUrl}/talas5/ClientData/WebServiceMap.asmx`;
// SOAP-Envelope für die Methode "GisStationsStaticDistrict"
const soapEnvelope = `
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GisStationsStaticDistrict xmlns="http://tempuri.org/">
<idMap>12</idMap>
<idUser>484</idUser>
</GisStationsStaticDistrict>
</soap:Body>
</soap:Envelope>
`;
try {
// Anfrage an SOAP-Server senden
const response = await fetch(targetUrl, {
method: "POST",
headers: {
"Content-Type": "text/xml; charset=utf-8",
SOAPAction: '"http://tempuri.org/GisStationsStaticDistrict"', // SOAPAction mit Anführungszeichen
},
body: soapEnvelope,
});
// Debugging: Status und Text ausgeben
const text = await response.text();
console.log("SOAP-Antwort:", text);
if (!response.ok) {
throw new Error(`Server antwortet mit Status ${response.status}`);
}
// Erfolgreiche Antwort senden
res.status(200).send(text);
} catch (error) {
console.error("Fehler beim SOAP-Aufruf:", error);
res.status(500).json({ error: "Fehler beim SOAP-Aufruf", details: error.message });
}
}

View File

@@ -1,66 +0,0 @@
// pages/api/gisStationsMeasurements.js
//proxy
// pages/api/gisStationsMeasurements.js
// Proxy für GisStationsMeasurements
export default async function handler(req, res) {
// CORS-Header setzen
res.setHeader("Access-Control-Allow-Credentials", true);
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
// OPTIONS-Preflight-Anfrage sofort beantworten
if (req.method === "OPTIONS") {
res.status(200).end();
return;
}
try {
// Parameter aus URL oder Fallback-Werte verwenden
const idMap = req.query.m; // 'm' = idMap
// Überprüfung, ob idMap fehlt
if (!idMap) {
res.status(400).json({
error: "Fehlender Parameter",
message: "Der Parameter 'm' oder 'idMap' ist erforderlich. Beispiel: ?m=12 oder ?idMap=12",
});
return; // Beende die Funktion, wenn der Parameter fehlt
}
// Dynamische URL basierend auf der Anfrage
const protocol = req.headers["x-forwarded-proto"] || "http"; // Protokoll ermitteln
const host = req.headers.host.split(":")[0]; // Hostname ohne Port
const serverBaseUrl = `${protocol}://${host}:80`; // Port explizit auf 80 setzen
console.log("Dynamische Server-URL:", serverBaseUrl); // Debugging
// Ziel-URL für den Webservice
const targetUrl = `${serverBaseUrl}/talas5/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap=${idMap}`;
console.log(`📦 Ziel-Request → idMap: ${idMap}, idUser: ${idUser}, URL: ${targetUrl}`);
// Daten vom Webservice abrufen
const response = await fetch(targetUrl, {
method: "GET", // GET-Request
headers: {
"Content-Type": "application/xml", // XML als Antwort erwartet
},
});
// Antwort überprüfen
if (!response.ok) {
throw new Error(`Server antwortet mit Status ${response.status}`);
}
// XML-Antwort als Text auslesen
const xmlText = await response.text();
//console.log("XML-Antwort in pages/api/gisStationsMeasurements.js:", xmlText); // Debugging
console.log("✅ Daten erhalten: /pages/api/gisStationsMeasurements.js:");
// XML direkt an den Client zurückgeben
res.status(200).send(xmlText);
} catch (error) {
console.error("Fehler beim Abrufen der Daten in pages/api/gisStationsMeasurements.js:", error);
res.status(500).json({ error: "Fehler beim Abrufen der Daten" });
}
}

View File

@@ -1,66 +0,0 @@
// pages/api/gisStationsStaticDistrict.js
// Proxy für GisStationsStaticDistrict
//Für DataSheet menü dropdown
export default async function handler(req, res) {
// CORS-Header setzen
res.setHeader("Access-Control-Allow-Credentials", true);
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
// OPTIONS-Preflight-Anfrage sofort beantworten
if (req.method === "OPTIONS") {
res.status(200).end();
return;
}
try {
// Parameter aus URL oder Fallback-Werte verwenden
const idMap = req.query.m; // 'm' = idMap
const idUser = req.query.u; // 'u' = idUser
// Überprüfung, ob Parameter fehlen
if (!idMap || !idUser) {
res.status(400).json({
error: "Fehlende Parameter",
message: "Die Parameter 'm' (idMap) und 'u' (idUser) sind erforderlich. Beispiel: ?m=12&u=484",
});
return; // Beende die Funktion, wenn Parameter fehlen
}
// Dynamische URL basierend auf der Anfrage
const protocol = req.headers["x-forwarded-proto"] || "http"; // Protokoll ermitteln
const host = req.headers.host.split(":")[0]; // Hostname ohne Port
const serverBaseUrl = `${protocol}://${host}:80`; // Port explizit auf 80 setzen
console.log("Dynamische Server-URL:", serverBaseUrl); // Debugging
// Ziel-URL für den Webservice
const targetUrl = `${serverBaseUrl}/talas5/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=${idMap}&idUser=${idUser}`;
console.log(`📦 Ziel-Request → idMap: ${idMap}, idUser: ${idUser}, URL: ${targetUrl}`);
// Daten vom Webservice abrufen
const response = await fetch(targetUrl, {
method: "GET", // GET-Request
headers: {
"Content-Type": "application/xml", // XML als Antwort erwartet
},
});
// Antwort überprüfen
if (!response.ok) {
throw new Error(`Server antwortet mit Status ${response.status}`);
}
// XML-Antwort als Text auslesen
const xmlText = await response.text();
//console.log("XML-Antwort in pages/api/gisStationsStaticDistrict.js :", xmlText); // Debugging
console.log("✅ Daten erhalten: /pages/api/gisStationsStaticDistrict.js:");
// XML direkt an den Client zurückgeben
res.status(200).send(xmlText);
} catch (error) {
console.error("Fehler beim Abrufen der Daten in in pages/api/gisStationsStaticDistrict.js:", error);
res.status(500).json({ error: "Fehler beim Abrufen der Daten" });
}
}

View File

@@ -1,65 +0,0 @@
// pages/api/gisStationsStatusDistrict.js
// Proxy für GisStationsStatusDistrict
export default async function handler(req, res) {
// CORS-Header setzen
res.setHeader("Access-Control-Allow-Credentials", true);
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
// OPTIONS-Preflight-Anfrage sofort beantworten
if (req.method === "OPTIONS") {
res.status(200).end();
return;
}
try {
// Parameter aus URL oder Fallback-Werte verwenden
const idMap = req.query.m; // 'm' = idMap
const idUser = req.query.u; // 'u' = idUser
// Überprüfung, ob Parameter fehlen
if (!idMap || !idUser) {
res.status(400).json({
error: "Fehlende Parameter",
message: "Die Parameter 'm' (idMap) und 'u' (idUser) sind erforderlich. Beispiel: ?m=12&u=484",
});
return; // Beende die Funktion, wenn Parameter fehlen
}
// Dynamische URL basierend auf der Anfrage
const protocol = req.headers["x-forwarded-proto"] || "http"; // Protokoll ermitteln
const host = req.headers.host.split(":")[0]; // Hostname ohne Port
const serverBaseUrl = `${protocol}://${host}:80`; // Port explizit auf 80 setzen
console.log("Dynamische Server-URL:", serverBaseUrl); // Debugging
// Ziel-URL für den Webservice
const targetUrl = `${serverBaseUrl}/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`;
console.log(`📦 Ziel-Request → idMap: ${idMap}, idUser: ${idUser}, URL: ${targetUrl}`);
// Daten vom Webservice abrufen
const response = await fetch(targetUrl, {
method: "GET", // GET-Request
headers: {
"Content-Type": "application/xml", // XML als Antwort erwartet
},
});
// Antwort überprüfen
if (!response.ok) {
throw new Error(`Server antwortet mit Status ${response.status}`);
}
// XML-Antwort als Text auslesen
const xmlText = await response.text();
//console.log("XML-Antwort in pages/api/gisStationsStatusDistrict.js:", xmlText); // Debugging
console.log("✅ Daten erhalten: /pages/api/gisStationsStatusDistrict.js:");
// XML direkt an den Client zurückgeben
res.status(200).send(xmlText);
} catch (error) {
console.error("Fehler beim Abrufen der Daten in pages/api/gisStationsStatusDistrict.js:", error);
res.status(500).json({ error: "Fehler beim Abrufen der Daten" });
}
}

View File

@@ -1,65 +0,0 @@
// pages/api/gisSystemStatic.js
// Proxy für GisSystemStatic
export default async function handler(req, res) {
// CORS-Header setzen
res.setHeader("Access-Control-Allow-Credentials", true);
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
// OPTIONS-Preflight-Anfrage sofort beantworten
if (req.method === "OPTIONS") {
res.status(200).end();
return;
}
try {
// Parameter aus URL oder Fallback-Werte verwenden
const idMap = req.query.m; // 'm' = idMap
const idUser = req.query.u; // 'u' = idUser
// Überprüfung, ob Parameter fehlen
if (!idMap || !idUser) {
res.status(400).json({
error: "Fehlende Parameter",
message: "Die Parameter 'm' (idMap) und 'u' (idUser) sind erforderlich. Beispiel: ?m=12&u=484",
});
return; // Beende die Funktion, wenn Parameter fehlen
}
// Dynamische URL basierend auf der Anfrage
const protocol = req.headers["x-forwarded-proto"] || "http"; // Protokoll ermitteln
const host = req.headers.host.split(":")[0]; // Hostname ohne Port
const serverBaseUrl = `${protocol}://${host}:80`; // Port explizit auf 80 setzen
console.log("Dynamische Server-URL:", serverBaseUrl); // Debugging
// Ziel-URL für den Webservice
const targetUrl = `${serverBaseUrl}/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=${idMap}&idUser=${idUser}`;
console.log(`📦 Ziel-Request → idMap: ${idMap}, idUser: ${idUser}, URL: ${targetUrl}`);
// Daten vom Webservice abrufen
const response = await fetch(targetUrl, {
method: "GET", // GET-Request
headers: {
"Content-Type": "application/xml", // XML als Antwort erwartet
},
});
// Antwort überprüfen
if (!response.ok) {
throw new Error(`Server antwortet mit Status ${response.status}`);
}
// XML-Antwort als Text auslesen
const xmlText = await response.text();
//console.log("XML-Antwort in /pages/api/gisSystemStatic.js:", xmlText); // Debugging
console.log("✅ Daten erhalten: /pages/api/gisSystemStatic.js:");
// XML direkt an den Client zurückgeben
res.status(200).send(xmlText);
} catch (error) {
console.error("Fehler beim Abrufen der Daten in in pages/api/gisSystemStatic.js:", error);
res.status(500).json({ error: "Fehler beim Abrufen der Daten" });
}
}

View File

@@ -1,29 +0,0 @@
import getPool from "../../utils/mysqlPool";
export default async function handler(req, res) {
// Nur GET-Anfragen zulassen
if (req.method !== "GET") {
return res.status(405).json({ error: "Methode nicht erlaubt" });
}
const pool = getPool(); // Singleton-Pool verwenden
let connection;
try {
// Verbindung abrufen
connection = await pool.getConnection();
// SQL-Query
const query = "SELECT idprio, level, name, color FROM prio";
const [results] = await connection.query(query);
// Erfolgreiche Antwort
res.status(200).json(results);
} catch (error) {
console.error("Fehler beim Abrufen der API:", error.message); // Mehr Details
res.status(500).json({ error: "Interner Serverfehler" });
} finally {
// Verbindung freigeben
if (connection) connection.release();
}
}

View File

@@ -1,29 +0,0 @@
// pages/api/rights.js
export default function handler(req, res) {
const { idMap, idUser } = req.query;
// Beispielhafte Rechte, die je nach idMap und idUser variieren können
const rights = {
'10': [
{ IdRight: 1, Name: "Zugriff auf Dashboard" },
{ IdRight: 56, Name: "Erweiterte Berechtigungen" }
],
'2': [
{ IdRight: 2, Name: "Zugriff auf Einstellungen" }
],
'1': [
{ IdRight: 10, Name: "Admin-Zugriff" },
{ IdRight: 11, Name: "Zugriff auf alle Daten" }
]
};
// Prüfung, ob eine gültige idMap und idUser vorhanden sind
if (rights[idMap] && idUser === '484') {
// Rückgabe der spezifischen Rechte basierend auf der idMap und idUser
res.status(200).json({ Rights: rights[idMap] });
} else {
// Rückgabe leerer Rechte für ungültige idMap oder andere Benutzer
res.status(200).json({ Rights: [] });
}
}