diff --git a/server/notification.js b/server/notification.js index ffd030cb0..37a2aaa0b 100644 --- a/server/notification.js +++ b/server/notification.js @@ -124,6 +124,93 @@ class Notification { console.log(error) return false; } + + } else if (notification.type === "slack") { + try { + if (heartbeatJSON == null) { + let data = { + "blocks": [{ + "type": "header", + "text": { + "type": "plain_text", + "text": "Uptime Kuma - Slack Testing" + } + }, + { + "type": "section", + "fields": [{ + "type": "mrkdwn", + "text": "*Message*\nSlack Testing" + }, + { + "type": "mrkdwn", + "text": "*Time (UTC)*\nSlack Testing" + } + ] + }, + { + "type": "actions", + "elements": [ + { + "type": "button", + "text": { + "type": "plain_text", + "text": "Visit Uptime Kuma", + }, + "value": "Uptime-Kuma", + "url": notification.slackbutton + } + ] + } + ] + } + let res = await axios.post(notification.slackwebhookURL, data) + return true; + } + + const time = heartbeatJSON["time"]; + let data = { + "blocks": [{ + "type": "header", + "text": { + "type": "plain_text", + "text": "Uptime Kuma Alert" + } + }, + { + "type": "section", + "fields": [{ + "type": "mrkdwn", + "text": '*Message*\n'+msg + }, + { + "type": "mrkdwn", + "text": "*Time (UTC)*\n"+time + } + ] + }, + { + "type": "actions", + "elements": [ + { + "type": "button", + "text": { + "type": "plain_text", + "text": "Visit Uptime Kuma", + }, + "value": "Uptime-Kuma", + "url": notification.slackbutton + } + ] + } + ] + } + let res = await axios.post(notification.slackwebhookURL, data) + return true; + } catch (error) { + console.log(error) + return false; + } } else { throw new Error("Notification type is not supported")