diff --git a/server/notification.js b/server/notification.js index 30d2df838..c60160a8a 100644 --- a/server/notification.js +++ b/server/notification.js @@ -92,6 +92,24 @@ class Notification { console.log(error) return false; } + return await Notification.discord(notification, msg) + + } else if (notification.type === "signal") { + try { + let data = { + "message": msg, + "number": notification.signalNumber, + "recipients": notification.signalRecipients.replace(/\s/g, '').split(",") + }; + let config = {}; + + let res = await axios.post(notification.signalURL, data, config) + return true; + } catch (error) { + console.log(error) + return false; + } + } else { throw new Error("Notification type is not supported") } @@ -135,20 +153,15 @@ class Notification { static async smtp(notification, msg) { - let data = { + let transporter = nodemailer.createTransport({ host: notification.smtpHost, port: notification.smtpPort, secure: notification.smtpSecure, - }; - - if (notification.smtpUsername) { - data.auth = { + auth: { user: notification.smtpUsername, pass: notification.smtpPassword, - }; - } - - let transporter = nodemailer.createTransport(data); + }, + }); // send mail with defined transport object let info = await transporter.sendMail({ @@ -160,6 +173,18 @@ class Notification { return true; } + + static async discord(notification, msg) { + const client = new Discord.Client(); + await client.login(notification.discordToken) + + const channel = await client.channels.fetch(notification.discordChannelID); + await channel.send(msg); + + client.destroy() + + return true; + } } module.exports = { diff --git a/src/components/NotificationDialog.vue b/src/components/NotificationDialog.vue index 316bd58d1..44454d688 100644 --- a/src/components/NotificationDialog.vue +++ b/src/components/NotificationDialog.vue @@ -17,6 +17,7 @@ + @@ -133,6 +134,41 @@ + +