const { pool } = require("../triggerBackend.cjs"); const wol = require("wake_on_lan"); const escapeString = require("sql-escape-string"); const getWolClients = async (_req, res) => { const conn = await pool.getConnection(); const query = "SELECT * from trigger_database.wolClients;"; conn.query(query).then((rows) => { res.status(200).send(rows); }); conn.end(); }; const createWolClient = async (req, res) => { const conn = await pool.getConnection(); const query = `INSERT INTO trigger_database.wolClients (hostname, macAddress) VALUES (${escapeString(req.body.hostname)}, ${escapeString(req.body.macAddress)})`; conn .query(query) .then((_rows) => { res.status(200).send({ status: "success" }); }) .catch((err) => { res.status(500).send({ error: err }); }); conn.end(); }; const updateWolClient = async (req, res) => { const conn = await pool.getConnection(); const query = `UPDATE trigger_database.wolClients SET hostname = ${escapeString(req.body.hostname)}, macAddress = ${escapeString(req.body.macAddress)} WHERE id = ${req.body.id}`; conn .query(query) .then((_rows) => { res.status(200).send({ status: "success" }); }) .catch((err) => { res.status(500).send({ error: err }); }); conn.end(); }; const deleteWolClient = async (req, res) => { const conn = await pool.getConnection(); const query = `DELETE FROM trigger_database.wolClients WHERE id = ${req.body.id}`; conn .query(query) .then((_rows) => { res.status(200).send({ status: "success" }); }) .catch((err) => { res.status(500).send({ error: err }); }); conn.end(); }; const wakeWolClient = async (req, res) => { wol.wake(req.body.macAddress, () => { res.status(200).send({ status: "success" }); }); }; module.exports = { getWolClients, createWolClient, updateWolClient, deleteWolClient, wakeWolClient, };