From 6eed27b1861bbf899a2b1bc470e238bfd5e1a2f7 Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Mon, 6 May 2024 00:09:51 -0600 Subject: [PATCH] Add ntfy support maybe --- index.js | 8 +++++++- package-lock.json | 20 ++++++++++++++++++++ package.json | 1 + 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 31cf6b5..8ea81b3 100644 --- a/index.js +++ b/index.js @@ -7,6 +7,8 @@ const bcrypt = require("bcrypt"); const sqlite3 = require("sqlite3").verbose(); const db = new sqlite3.Database("database.db"); const SQLiteStore = require('connect-sqlite3')(session); +const ntfy = require("ntfy"); + @@ -162,7 +164,7 @@ const createTicket = (title, description, status, user, priority) => { reject(err); return; } - + if (config.ntfy) ntfy.publish({server: config.ntfy.server, authorization: config.ntfy.authorization, topic: config.ntfy.topic, title: `New Ticket`, message: `${title}: ${description}`, priority, tags: [user, new Date(timestamp).toISOString()]}); resolve(this.lastID); } ); @@ -178,6 +180,7 @@ const deleteTicket = (id) => { reject(err); return; } + if (config.ntfy) ntfy.publish({server: config.ntfy.server, authorization: config.ntfy.authorization, topic: config.ntfy.topic, title: `Ticket Deleted`, message: `Ticket ${id} has been deleted`, tags: [new Date().toISOString()]}); resolve(); }); }); @@ -370,6 +373,7 @@ app.post("/ticket/:id/:action", isAuthenticated, (req, res) => { console.error(err); return res.status(500).send("Internal Server Error"); } + if (config.ntfy) ntfy.publish({server: config.ntfy.server, authorization: config.ntfy.authorization, topic: config.ntfy.topic, title: `New Message on ticket ${req.params.id}`, message: `${req.body.message}`, tags: [req.session.userData.username, new Date(timestamp).toISOString()]}); res.redirect(`/ticket/${req.params.id}`); }); }); @@ -391,6 +395,7 @@ app.post("/ticket/:id/:action", isAuthenticated, (req, res) => { console.error(err); return res.status(500).send("Internal Server Error"); } + if(config.ntfy) ntfy.publish({server: config.ntfy.server, authorization: config.ntfy.authorization, topic: config.ntfy.topic, title: `Ticket ${req.params.id} status changed`, message: `Status changed to ${req.body.status}`, tags: [req.session.userData.username, new Date(Date.now()).toISOString()]}); res.redirect(`/ticket/${req.params.id}`); }); }); @@ -413,6 +418,7 @@ app.post("/ticket/:id/:action", isAuthenticated, (req, res) => { console.error(err); return res.status(500).send("Internal Server Error"); } + if(config.ntfy) ntfy.publish({server: config.ntfy.server, authorization: config.ntfy.authorization, topic: config.ntfy.topic, title: `Ticket ${req.params.id} priority changed`, message: `Priority changed to ${req.body.priority}`, tags: [req.session.userData.username, new Date(Date.now()).toISOString()]}); res.redirect(`/ticket/${req.params.id}`); }); }); diff --git a/package-lock.json b/package-lock.json index 8ea46dd..1b5ba93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "ejs": "^3.1.10", "express": "^4.19.2", "express-session": "^1.18.0", + "ntfy": "^1.5.3", "sqlite3": "^5.1.7" } }, @@ -1672,6 +1673,17 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/ntfy": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ntfy/-/ntfy-1.5.3.tgz", + "integrity": "sha512-By98aWwKgoa2Lp31xtEZ6WqyROHfT2/f5S1/0L4xA095D5m+gDpy95adcQkm/kVkLLTDFDK603Xicj1YGXfR6w==", + "dependencies": { + "axios": "1.6.8" + }, + "engines": { + "node": ">= 18.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3677,6 +3689,14 @@ "set-blocking": "^2.0.0" } }, + "ntfy": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ntfy/-/ntfy-1.5.3.tgz", + "integrity": "sha512-By98aWwKgoa2Lp31xtEZ6WqyROHfT2/f5S1/0L4xA095D5m+gDpy95adcQkm/kVkLLTDFDK603Xicj1YGXfR6w==", + "requires": { + "axios": "1.6.8" + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", diff --git a/package.json b/package.json index f9b8ddf..6381a72 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "ejs": "^3.1.10", "express": "^4.19.2", "express-session": "^1.18.0", + "ntfy": "^1.5.3", "sqlite3": "^5.1.7" } }