Files
TriggerBackend/commands/wolData.cjs
2026-07-26 18:33:11 -05:00

69 lines
1.8 KiB
JavaScript

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,
};