mirror of
https://github.com/louislam/uptime-kuma.git
synced 2026-08-07 10:14:59 +00:00
b4ce00530e
Co-authored-by: Jacob <jacob@humera.io>
80 lines
2.3 KiB
JavaScript
80 lines
2.3 KiB
JavaScript
const NotificationProvider = require("./notification-provider");
|
|
const axios = require("axios");
|
|
const { DOWN, UP } = require("../../src/util");
|
|
|
|
class Flowtriq extends NotificationProvider {
|
|
name = "Flowtriq";
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
|
|
const okMsg = "Sent Successfully.";
|
|
|
|
try {
|
|
let status = "info";
|
|
let monitorName = monitorJSON?.name || "Unknown";
|
|
|
|
if (heartbeatJSON != null) {
|
|
if (heartbeatJSON.status === DOWN) {
|
|
status = "down";
|
|
} else if (heartbeatJSON.status === UP) {
|
|
status = "up";
|
|
}
|
|
}
|
|
|
|
let data = {
|
|
source: "uptime-kuma",
|
|
status: status,
|
|
monitor: monitorName,
|
|
msg: msg,
|
|
};
|
|
|
|
if (heartbeatJSON) {
|
|
data.heartbeat = {
|
|
status: heartbeatJSON.status,
|
|
time: heartbeatJSON.time,
|
|
ping: heartbeatJSON.ping,
|
|
msg: heartbeatJSON.msg,
|
|
timezone: heartbeatJSON.timezone,
|
|
};
|
|
}
|
|
|
|
if (monitorJSON) {
|
|
data.monitorInfo = {
|
|
id: monitorJSON.id,
|
|
name: monitorJSON.name,
|
|
type: monitorJSON.type,
|
|
url: monitorJSON.url,
|
|
hostname: monitorJSON.hostname,
|
|
port: monitorJSON.port,
|
|
};
|
|
}
|
|
|
|
let headers = {
|
|
"Content-Type": "application/json",
|
|
};
|
|
|
|
if (notification.flowtriqApiKey) {
|
|
headers["X-API-Key"] = notification.flowtriqApiKey;
|
|
}
|
|
|
|
let config = this.getAxiosConfigWithProxy({
|
|
headers: headers,
|
|
});
|
|
|
|
let result = await axios.post(notification.flowtriqWebhookUrl, data, config);
|
|
|
|
if (result.status < 200 || result.status >= 300) {
|
|
throw new Error("Flowtriq notification failed with status code " + result.status);
|
|
}
|
|
|
|
return okMsg;
|
|
} catch (error) {
|
|
this.throwGeneralAxiosError(error);
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = Flowtriq;
|