Slack notification block not working (#1958)

* [empty commit] pull request for slack notification

* Add attachments block for slack notification

* chore: update action button in new attachment block

* chore: loop in attachments to push blocks

* chore: missing semicolon

Co-authored-by: pruekanw <arniwatt.c@linecorp.com>
pull/2506/head^2
Arniwatt Chonkiattipoom 2 years ago committed by GitHub
parent 39ac9b887e
commit a8af2a418e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,7 +1,7 @@
const NotificationProvider = require("./notification-provider"); const NotificationProvider = require("./notification-provider");
const axios = require("axios"); const axios = require("axios");
const { setSettings, setting } = require("../util-server"); const { setSettings, setting } = require("../util-server");
const { getMonitorRelativeURL } = require("../../src/util"); const { getMonitorRelativeURL, UP } = require("../../src/util");
class Slack extends NotificationProvider { class Slack extends NotificationProvider {
@ -46,24 +46,31 @@ class Slack extends NotificationProvider {
"channel": notification.slackchannel, "channel": notification.slackchannel,
"username": notification.slackusername, "username": notification.slackusername,
"icon_emoji": notification.slackiconemo, "icon_emoji": notification.slackiconemo,
"blocks": [{ "attachments": [
"type": "header",
"text": {
"type": "plain_text",
"text": "Uptime Kuma Alert",
},
},
{
"type": "section",
"fields": [{
"type": "mrkdwn",
"text": "*Message*\n" + msg,
},
{ {
"type": "mrkdwn", "color": (heartbeatJSON["status"] === UP) ? "#2eb886" : "#e01e5a",
"text": "*Time (UTC)*\n" + time, "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,
}],
}
],
}
]
}; };
if (notification.slackbutton) { if (notification.slackbutton) {
@ -74,17 +81,19 @@ class Slack extends NotificationProvider {
// Button // Button
if (baseURL) { if (baseURL) {
data.blocks.push({ data.attachments.forEach(element => {
"type": "actions", element.blocks.push({
"elements": [{ "type": "actions",
"type": "button", "elements": [{
"text": { "type": "button",
"type": "plain_text", "text": {
"text": "Visit Uptime Kuma", "type": "plain_text",
}, "text": "Visit Uptime Kuma",
"value": "Uptime-Kuma", },
"url": baseURL + getMonitorRelativeURL(monitorJSON.id), "value": "Uptime-Kuma",
}], "url": baseURL + getMonitorRelativeURL(monitorJSON.id),
}],
});
}); });
} }

Loading…
Cancel
Save