made sure that the address extraction is extracted into its own method
This commit is contained in:
parent
bd95ccdc64
commit
c9132adfc7
|
@ -33,26 +33,6 @@ class Discord extends NotificationProvider {
|
||||||
return okMsg;
|
return okMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
let address;
|
|
||||||
|
|
||||||
switch (monitorJSON["type"]) {
|
|
||||||
case "ping":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
break;
|
|
||||||
case "port":
|
|
||||||
case "dns":
|
|
||||||
case "gamedig":
|
|
||||||
case "steam":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
if (monitorJSON["port"]) {
|
|
||||||
address += ":" + monitorJSON["port"];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
address = monitorJSON["url"];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If heartbeatJSON is not null, we go into the normal alerting loop.
|
// If heartbeatJSON is not null, we go into the normal alerting loop.
|
||||||
if (heartbeatJSON["status"] === DOWN) {
|
if (heartbeatJSON["status"] === DOWN) {
|
||||||
let discorddowndata = {
|
let discorddowndata = {
|
||||||
|
@ -105,7 +85,7 @@ class Discord extends NotificationProvider {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: monitorJSON["type"] === "push" ? "Service Type" : "Service URL",
|
name: monitorJSON["type"] === "push" ? "Service Type" : "Service URL",
|
||||||
value: monitorJSON["type"] === "push" ? "Heartbeat" : address,
|
value: this.extractAdress(monitorJSON),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: `Time (${heartbeatJSON["timezone"]})`,
|
name: `Time (${heartbeatJSON["timezone"]})`,
|
||||||
|
|
|
@ -19,6 +19,37 @@ class NotificationProvider {
|
||||||
throw new Error("Have to override Notification.send(...)");
|
throw new Error("Have to override Notification.send(...)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extracts the address from a monitor JSON object based on its type.
|
||||||
|
*
|
||||||
|
* @param {?object} monitorJSON Monitor details (For Up/Down only)
|
||||||
|
* @returns {string} The extracted address based on the monitor type.
|
||||||
|
*/
|
||||||
|
extractAdress(monitorJSON){
|
||||||
|
if (!monitorJSON) {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
switch (monitorJSON["type"]) {
|
||||||
|
case "push":
|
||||||
|
return "Heartbeat";
|
||||||
|
case "ping":
|
||||||
|
return monitorJSON["hostname"];
|
||||||
|
case "port":
|
||||||
|
case "dns":
|
||||||
|
case "gamedig":
|
||||||
|
case "steam":
|
||||||
|
if (monitorJSON["port"]) {
|
||||||
|
return monitorJSON["hostname"] + ":" + monitorJSON["port"];
|
||||||
|
}
|
||||||
|
return monitorJSON["hostname"]
|
||||||
|
default:
|
||||||
|
if (![ "https://", "http://", "" ].includes(monitorJSON["url"])) {
|
||||||
|
return monitorJSON["url"];
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws an error
|
* Throws an error
|
||||||
* @param {any} error The error to throw
|
* @param {any} error The error to throw
|
||||||
|
|
|
@ -32,28 +32,7 @@ class SevenIO extends NotificationProvider {
|
||||||
return okMsg;
|
return okMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
let address = "";
|
let address = extractAdress(monitorJSON);
|
||||||
|
|
||||||
switch (monitorJSON["type"]) {
|
|
||||||
case "ping":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
break;
|
|
||||||
case "port":
|
|
||||||
case "dns":
|
|
||||||
case "gamedig":
|
|
||||||
case "steam":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
if (monitorJSON["port"]) {
|
|
||||||
address += ":" + monitorJSON["port"];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (![ "https://", "http://", "" ].includes(monitorJSON["url"])) {
|
|
||||||
address = monitorJSON["url"];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (address !== "") {
|
if (address !== "") {
|
||||||
address = `(${address}) `;
|
address = `(${address}) `;
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,12 +93,7 @@ class SMTP extends NotificationProvider {
|
||||||
|
|
||||||
if (monitorJSON !== null) {
|
if (monitorJSON !== null) {
|
||||||
monitorName = monitorJSON["name"];
|
monitorName = monitorJSON["name"];
|
||||||
|
monitorHostnameOrURL = this.extractAdress(monitorJSON);
|
||||||
if (monitorJSON["type"] === "http" || monitorJSON["type"] === "keyword" || monitorJSON["type"] === "json-query") {
|
|
||||||
monitorHostnameOrURL = monitorJSON["url"];
|
|
||||||
} else {
|
|
||||||
monitorHostnameOrURL = monitorJSON["hostname"];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let serviceStatus = "⚠️ Test";
|
let serviceStatus = "⚠️ Test";
|
||||||
|
|
|
@ -34,25 +34,7 @@ class Squadcast extends NotificationProvider {
|
||||||
data.status = "resolve";
|
data.status = "resolve";
|
||||||
}
|
}
|
||||||
|
|
||||||
let address;
|
data.tags["AlertAddress"] = this.extractAdress(monitorJSON);
|
||||||
switch (monitorJSON["type"]) {
|
|
||||||
case "ping":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
break;
|
|
||||||
case "port":
|
|
||||||
case "dns":
|
|
||||||
case "steam":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
if (monitorJSON["port"]) {
|
|
||||||
address += ":" + monitorJSON["port"];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
address = monitorJSON["url"];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
data.tags["AlertAddress"] = address;
|
|
||||||
|
|
||||||
monitorJSON["tags"].forEach(tag => {
|
monitorJSON["tags"].forEach(tag => {
|
||||||
data.tags[tag["name"]] = {
|
data.tags[tag["name"]] = {
|
||||||
|
|
|
@ -216,21 +216,6 @@ class Teams extends NotificationProvider {
|
||||||
return okMsg;
|
return okMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
let monitorUrl;
|
|
||||||
|
|
||||||
switch (monitorJSON["type"]) {
|
|
||||||
case "http":
|
|
||||||
case "keywork":
|
|
||||||
monitorUrl = monitorJSON["url"];
|
|
||||||
break;
|
|
||||||
case "docker":
|
|
||||||
monitorUrl = monitorJSON["docker_host"];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
monitorUrl = monitorJSON["hostname"];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
const baseURL = await setting("primaryBaseURL");
|
const baseURL = await setting("primaryBaseURL");
|
||||||
let dashboardUrl;
|
let dashboardUrl;
|
||||||
if (baseURL) {
|
if (baseURL) {
|
||||||
|
@ -240,7 +225,7 @@ class Teams extends NotificationProvider {
|
||||||
const payload = this._notificationPayloadFactory({
|
const payload = this._notificationPayloadFactory({
|
||||||
heartbeatJSON: heartbeatJSON,
|
heartbeatJSON: heartbeatJSON,
|
||||||
monitorName: monitorJSON.name,
|
monitorName: monitorJSON.name,
|
||||||
monitorUrl: monitorUrl,
|
monitorUrl: this.extractAdress(monitorJSON),
|
||||||
dashboardUrl: dashboardUrl,
|
dashboardUrl: dashboardUrl,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -82,25 +82,7 @@ class ZohoCliq extends NotificationProvider {
|
||||||
return okMsg;
|
return okMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
let address;
|
|
||||||
|
|
||||||
switch (monitorJSON["type"]) {
|
|
||||||
case "ping":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
break;
|
|
||||||
case "port":
|
|
||||||
case "dns":
|
|
||||||
case "gamedig":
|
|
||||||
case "steam":
|
|
||||||
address = monitorJSON["hostname"];
|
|
||||||
if (monitorJSON["port"]) {
|
|
||||||
address += ":" + monitorJSON["port"];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
address = monitorJSON["url"];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
const payload = this._notificationPayloadFactory({
|
const payload = this._notificationPayloadFactory({
|
||||||
monitorMessage: heartbeatJSON.msg,
|
monitorMessage: heartbeatJSON.msg,
|
||||||
|
|
Loading…
Reference in New Issue