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;