69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
const { pool } = require("../triggerBackend.cjs");
|
|
const wol = require("wol");
|
|
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,
|
|
};
|