58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
// 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();
|
|
}
|
|
}
|