Adding modules

This commit is contained in:
Sean Edmunds
2026-07-09 16:55:54 -05:00
parent 25bdf296d3
commit 0417497457
10 changed files with 1001 additions and 679 deletions

46
commands/SearchData.cjs Normal file
View File

@@ -0,0 +1,46 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const getSearchHistory = async (_req, res) => {
const conn = await pool.getConnection();
const query =
"SELECT * FROM trigger_database.searchHistory ORDER BY dateTimeStamp DESC;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const addSearchHistoryItem = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.searchHistory (prefix, provider, searchTerm) VALUES (${escapeString(req.body.prefix)}, ${escapeString(req.body.provider)}, ${escapeString(req.body.searchTerm)})`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const deleteSearchHistoryItem = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.searchHistory 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();
};
module.exports = {
getSearchHistory,
addSearchHistoryItem,
deleteSearchHistoryItem,
};

View File

@@ -0,0 +1,99 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const getApplications = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * FROM trigger_database.applications;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const getEnabledApplications = async (_req, res) => {
const conn = await pool.getConnection();
const query =
"SELECT * FROM trigger_database.applications WHERE enabled = 1;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const postApplication = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.applications (name, url, icon, baseUrl, filterName, enabled, \`index\`) VALUES (${escapeString(req.body.name)}, ${escapeString(req.body.url)}, ${escapeString(req.body.icon)}, ${escapeString(req.body.baseUrl)}, ${escapeString(req.body.filterName)}, ${req.body.enabled}, ${req.body.index});`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const patchApplication = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.applications SET name = ${escapeString(req.body.name)}, url = ${escapeString(req.body.url)}, icon = ${escapeString(req.body.icon)}, baseUrl = ${escapeString(req.body.baseUrl)}, filterName = ${escapeString(req.body.filterName)}, enabled = ${req.body.enabled} 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 deleteApplication = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.applications 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 getAppCategories = async (_req, res) => {
const conn = await pool.getConnection();
const query =
"SELECT filterName FROM trigger_database.applications UNION SELECT filterName FROM trigger_database.bookmarkCategories;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const updateApplicationOrder = async (req, res) => {
const conn = await pool.getConnection();
req.body.map(async (link) => {
return conn
.query(
"UPDATE trigger_database.applications SET `index` = ? where id IN (?)",
[link.index, link.id],
)
.then((_rows) => {
res.status(200);
});
});
res.send({ status: "success" });
conn.end();
};
module.exports = {
getApplications,
getEnabledApplications,
postApplication,
patchApplication,
deleteApplication,
getAppCategories,
updateApplicationOrder,
};

157
commands/bookmarkData.cjs Normal file
View File

@@ -0,0 +1,157 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const getBookmarks = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * FROM trigger_database.bookmarks;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const postBookmark = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.bookmarks (name, url, category, \`index\`, enabled) VALUES (${escapeString(req.body.name)}, ${escapeString(req.body.url)}, ${escapeString(req.body.category)}, ${req.body.index}, ${req.body.enabled});`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const patchBookmark = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.bookmarks SET name = ${escapeString(req.body.name)}, url = ${escapeString(req.body.url)}, category = ${escapeString(req.body.category)}, \`index\` = ${req.body.index}, enabled = ${req.body.enabled} 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 deleteBookmark = async (req, res) => {
const conn = await pool.getConnection();
if (req.body.length > 1) {
req.body.map(async (link) => {
return conn
.query("DELETE FROM trigger_database.bookmarks where id IN (?)", [
link.id,
])
.then(() => {
res.status(200);
});
});
res.send({ status: "success" });
} else {
const query = `DELETE FROM trigger_database.bookmarks WHERE id = ${req.body.id}`;
conn
.query(query)
.then(() => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
}
conn.end();
};
const patchBookmarkOrder = async (req, res) => {
const conn = await pool.getConnection();
req.body.map(async (link) => {
return conn
.query(
"UPDATE trigger_database.bookmarks SET `index` = ? where id IN (?)",
[link.index, link.id],
)
.then(() => {
res.status(200);
});
});
res.send({ status: "success" });
conn.end();
};
const getBookmarkCategories = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * from trigger_database.bookmarkCategories;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const postBookmarkCategory = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.bookmarkCategories (categoryName, categoryIndex, filterName) VALUES (${escapeString(req.body.categoryName)},${req.body.categoryIndex || 0},${escapeString(req.body.filterName)})`;
conn.query(query).then((_rows) => {
res.status(200).send({ status: "success" });
});
conn.end();
};
const patchBookmarkCategory = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.bookmarkCategories SET categoryName = ${escapeString(req.body.categoryName)}, filterName = ${escapeString(req.body.filterName)}, enabled = ${req.body.enabled} 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 deleteBookmarkCategory = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.bookmarkCategories 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 patchBookmarkCategoryOrder = async (req, res) => {
const conn = await pool.getConnection();
req.body.map(async (category) => {
return conn
.query(
"UPDATE trigger_database.bookmarkCategories SET categoryIndex = ? where id IN (?)",
[category.index, category.id],
)
.then((_rows) => {
res.status(200);
});
});
res.send({ status: "success" });
conn.end();
};
module.exports = {
getBookmarks,
postBookmark,
patchBookmark,
deleteBookmark,
patchBookmarkOrder,
getBookmarkCategories,
postBookmarkCategory,
patchBookmarkCategory,
deleteBookmarkCategory,
patchBookmarkCategoryOrder,
};

View File

@@ -0,0 +1,60 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const getGuacamoleClients = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * from trigger_database.guacamoleClients;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const createGuacamoleClient = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.guacamoleClients (clientName, clientIdentifier, enabled, type) VALUES (${escapeString(req.body.clientName)}, ${escapeString(req.body.clientIdentifier)}, ${req.body.enabled}, ${escapeString(req.body.type)})`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const updateGuacamoleClient = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.guacamoleClients SET clientName = ${escapeString(req.body.clientName)}, clientIdentifier = ${escapeString(req.body.clientIdentifier)} , enabled = ${req.body.enabled}, type = ${escapeString(req.body.type)} 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 deleteGuacamoleClient = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.guacamoleClients 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();
};
module.exports = {
getGuacamoleClients,
createGuacamoleClient,
updateGuacamoleClient,
deleteGuacamoleClient,
};

71
commands/messageData.cjs Normal file
View File

@@ -0,0 +1,71 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const getMessages = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * FROM trigger_database.messages;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const getDisplayedGreeting = async (_req, res) => {
const conn = await pool.getConnection();
const query =
"SELECT * FROM trigger_database.messages WHERE customGreeting = 1 ORDER BY RAND() LIMIT 1;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const postMessage = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.messages (message) VALUES (${escapeString(req.body.message)});`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const patchMessage = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.messages SET message = ${escapeString(req.body.message)}, customGreeting = ${req.body.customGreeting} 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 deleteMessage = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.messages 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();
};
module.exports = {
getMessages,
getDisplayedGreeting,
postMessage,
patchMessage,
deleteMessage,
};

61
commands/personalData.cjs Normal file
View File

@@ -0,0 +1,61 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const getPersonalData = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * FROM trigger_database.personalData;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const getGuacamoleHost = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT guacamoleHost FROM trigger_database.personalData;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const getGuacamoleEnabled = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT enableGuacamole FROM trigger_database.personalData;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const getWolEnabled = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT enableWol FROM trigger_database.personalData;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const updatePersonalData = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.personalData SET firstName = ${escapeString(req.body.firstName)}, lastName = ${escapeString(req.body.lastName)}, email = ${escapeString(req.body.email)}, physicalAddress = ${escapeString(req.body.physicalAddress)}, enableWol = ${req.body.enableWol}, enableGuacamole = ${req.body.enableGuacamole}, guacamoleHost = ${escapeString(req.body.guacamoleHost ?? "")}, nickname = ${escapeString(req.body.nickname ?? "")}, defaultFont = ${escapeString(req.body.defaultFont)};`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
module.exports = {
getPersonalData,
updatePersonalData,
getGuacamoleHost,
getGuacamoleEnabled,
getWolEnabled,
};

78
commands/providerData.cjs Normal file
View File

@@ -0,0 +1,78 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const getProviders = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * FROM trigger_database.providers;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const getDefaultProvider = async (_req, res) => {
const conn = await pool.getConnection();
const query = `SELECT * FROM trigger_database.providers WHERE \`default\` = 1;`;
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const postProvider = async (req, res) => {
const conn = await pool.getConnection();
if (req.body.default === true || req.body.default === 1) {
const query = `UPDATE trigger_database.providers SET \`default\` = 0;`;
conn.query(query);
}
const query = `INSERT INTO trigger_database.providers (name, url, prefix, \`default\`, icon) VALUES (${escapeString(req.body.name)}, ${escapeString(req.body.url)}, ${escapeString(req.body.prefix)}, ${req.body.default ? 1 : 0}, ${escapeString(req.body.icon)});`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const patchProvider = async (req, res) => {
const conn = await pool.getConnection();
if (req.body.default === true || req.body.default === 1) {
const query = `UPDATE trigger_database.providers SET \`default\` = 0;`;
conn.query(query);
}
const query = `UPDATE trigger_database.providers SET name = ${escapeString(req.body.name)}, url = ${escapeString(req.body.url)}, prefix = ${escapeString(req.body.prefix)}, \`default\` = ${req.body.default}, icon = ${escapeString(req.body.icon)} 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 deleteProvider = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.providers 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();
};
module.exports = {
getProviders,
getDefaultProvider,
postProvider,
patchProvider,
deleteProvider,
};

191
commands/themeData.cjs Normal file
View File

@@ -0,0 +1,191 @@
const { pool } = require("../triggerBackend.cjs");
const escapeString = require("sql-escape-string");
const fs = require("node:fs");
const getThemes = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * FROM trigger_database.themes;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const addTheme = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.themes (name, backgroundImage, backgroundColor, searchColor, primaryColor, accentColor, borderColor, themeFont) VALUES (${escapeString(req.body.name)},${escapeString(req.body.backgroundImage)},${escapeString(req.body.backgroundColor)},${escapeString(req.body.searchColor)},${escapeString(req.body.primaryColor)},${escapeString(req.body.accentColor)},${escapeString(req.body.borderColor)},${escapeString(req.body.themeFont)})`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const updateTheme = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.themes SET name = ${escapeString(req.body.name)}, backgroundImage = ${escapeString(req.body.backgroundImage)}, backgroundColor = ${escapeString(req.body.backgroundColor)}, searchColor = ${escapeString(req.body.searchColor)}, primaryColor = ${escapeString(req.body.primaryColor)}, accentColor = ${escapeString(req.body.accentColor)}, borderColor = ${escapeString(req.body.borderColor)}, randomEnabled = ${req.body.randomEnabled ? 1 : 0}, textShadowsEnabled = ${req.body.textShadowsEnabled ? 1 : 0}, appShadowsEnabled = ${req.body.appShadowsEnabled ? 1 : 0}, themeFont = ${req.body.themeFont === null ? null : escapeString(req.body.themeFont)} 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 deleteTheme = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.themes 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 getThemePlaylists = async (_req, res) => {
const conn = await pool.getConnection();
const query = "SELECT * FROM trigger_database.themePlaylists;";
conn.query(query).then((rows) => {
res.status(200).send(rows);
});
conn.end();
};
const addThemePlaylist = async (req, res) => {
const conn = await pool.getConnection();
const query = `INSERT INTO trigger_database.themePlaylists (name, themeList) VALUES (${escapeString(req.body.name)},${escapeString(req.body.themeList)});`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const updateThemePlaylist = async (req, res) => {
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.themePlaylists SET name = ${escapeString(req.body.name)}, themeList = ${escapeString(req.body.themeList)} 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 deleteThemePlaylist = async (req, res) => {
const conn = await pool.getConnection();
const query = `DELETE FROM trigger_database.themePlaylists 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 getBackgrounds = async (_req, res) => {
fs.readdir(
"../TriggerFrontend/backgrounds",
{ withFileTypes: true },
(_err, files) => {
res
.status(200)
.send(files.filter((file) => file.isFile()).map((file) => file.name));
},
);
};
const uploadBackground = async (req, res) => {
const image = req.file.path;
const thumbnail = `${req.file.destination}thumbs/${req.file.filename}`;
exec(`convert ${image} -resize 'x1080' -define jpeg:extent=300kb ${image}`);
exec(`convert ${image} -resize 'x360' -define jpeg:extent=75kb ${thumbnail}`);
res.status(200).send({ status: "success", statusText: image });
};
const updateBackground = async (req, res) => {
fs.rename(
`../TriggerFrontend/backgrounds/${req.body.fileName}`,
`../TriggerFrontend/backgrounds/${req.body.newFileName}`,
(err) => {
if (err) throw err;
},
);
fs.rename(
`../TriggerFrontend/backgrounds/thumbs/${req.body.fileName}`,
`../TriggerFrontend/backgrounds/thumbs/${req.body.newFileName}`,
(err) => {
if (err) throw err;
},
);
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.themes SET backgroundImage = ${escapeString(req.body.newFileName)} WHERE backgroundImage = ${escapeString(req.body.fileName)};`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
const deleteBackground = async (req, res) => {
fs.rm(`../TriggerFrontend/backgrounds/${req.body.fileName}`, (_err) => {
if (_err) throw _err;
});
fs.rm(
`../TriggerFrontend/backgrounds/thumbs/${req.body.fileName}`,
(_err) => {
if (_err) throw _err;
},
);
const conn = await pool.getConnection();
const query = `UPDATE trigger_database.themes SET backgroundImage = 'none' WHERE backgroundImage = ${escapeString(req.body.fileName)};`;
conn
.query(query)
.then((_rows) => {
res.status(200).send({ status: "success" });
})
.catch((err) => {
res.status(500).send({ error: err });
});
conn.end();
};
module.exports = {
getThemes,
addTheme,
updateTheme,
deleteTheme,
getThemePlaylists,
addThemePlaylist,
updateThemePlaylist,
deleteThemePlaylist,
getBackgrounds,
uploadBackground,
updateBackground,
deleteBackground,
};

67
commands/wolData.cjs Normal file
View File

@@ -0,0 +1,67 @@
const { pool } = require("../triggerBackend.cjs");
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,
};