uptime-kuma/server/notification-providers/pumble.js
2024-11-13 18:20:02 +01:00

52 lines
1.6 KiB
JavaScript

const NotificationProvider = require("./notification-provider");
const axios = require("axios");
const { UP } = require("../../src/util");
class Pumble extends NotificationProvider {
name = "pumble";
/**
* @inheritDoc
*/
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
const okMsg = "Sent Successfully.";
let webhookUrl = notification.pumblewebhookURL;
try {
if (heartbeatJSON === null && monitorJSON === null) {
// Test message
let data = {
"text": "Uptime Kuma Alert",
"attachments": [
{
"title": "Test Alert",
"text": msg,
"color": "#5BDD8B"
}
]
};
await axios.post(webhookUrl, data);
return okMsg;
}
let data = {
"text": "Uptime Kuma Alert",
"attachments": [
{
"title": `${monitorJSON["name"]} is ${heartbeatJSON["status"] === UP ? "up" : "down"}`,
"text": heartbeatJSON["msg"],
"color": (heartbeatJSON["status"] === UP ? "#5BDD8B" : "#DC3645"),
}
]
};
await axios.post(webhookUrl, data);
return okMsg;
} catch (error) {
this.throwGeneralAxiosError(error);
}
}
}
module.exports = Pumble;