const NotificationProvider = require("./notification-provider"); const axios = require("axios"); class RocketChat extends NotificationProvider { name = "rocket.chat"; async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { let okMsg = "Sent Successfully."; 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) { this.throwGeneralAxiosError(error) } } } module.exports = RocketChat;