diff --git a/server/notification.js b/server/notification.js index cb77a619..4a139948 100644 --- a/server/notification.js +++ b/server/notification.js @@ -279,6 +279,40 @@ class Notification { throwGeneralAxiosError(error) } + } else if (notification.type === "rocket.chat") { + try { + if (heartbeatJSON == null) { + let data = { + "text": "Uptime Kuma Rocket.chat testing successful.", + "channel": notification.rocketchannel, + "username": notification.rocketusername, + "icon_emoji": notification.rocketiconemo, + } + await axios.post(notification.rocketwebhookURL, data) + return okMsg; + } + + const time = heartbeatJSON["time"]; + let data = { + "text": "Uptime Kuma Alert", + "channel": notification.rocketchannel, + "username": notification.rocketusername, + "icon_emoji": notification.rocketiconemo, + "attachments": [ + { + "title": "Uptime Kuma Alert *Time (UTC)*\n" + time, + "title_link": notification.rocketbutton, + "text": "*Message*\n" + msg, + "color": "#32cd32" + } + ] + } + await axios.post(notification.rocketwebhookURL, data) + return okMsg; + } catch (error) { + throwGeneralAxiosError(error) + } + } else if (notification.type === "mattermost") { try { const mattermostUserName = notification.mattermostusername || "Uptime Kuma"; diff --git a/src/components/NotificationDialog.vue b/src/components/NotificationDialog.vue index d639e4f2..6bfdfad6 100644 --- a/src/components/NotificationDialog.vue +++ b/src/components/NotificationDialog.vue @@ -20,6 +20,7 @@ + @@ -239,6 +240,36 @@ + +