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 createApplication = 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 updateApplication = 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, createApplication, updateApplication, deleteApplication, getAppCategories, updateApplicationOrder, };