|
|
|
@ -354,6 +354,41 @@ class Notification {
|
|
|
|
|
throwGeneralAxiosError(error)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else if (notification.type === "pushbullet") {
|
|
|
|
|
try {
|
|
|
|
|
let pushbulletUrl = `https://api.pushbullet.com/v2/pushes`;
|
|
|
|
|
let config = {
|
|
|
|
|
headers: {
|
|
|
|
|
'Access-Token': notification.pushbulletAccessToken,
|
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
if (heartbeatJSON == null) {
|
|
|
|
|
let testdata = {
|
|
|
|
|
"type": "note",
|
|
|
|
|
"title": "Uptime Kuma Alert",
|
|
|
|
|
"body": "Testing Successful.",
|
|
|
|
|
}
|
|
|
|
|
await axios.post(pushbulletUrl, testdata, config)
|
|
|
|
|
} else if (heartbeatJSON["status"] == 0) {
|
|
|
|
|
let downdata = {
|
|
|
|
|
"type": "note",
|
|
|
|
|
"title": "UptimeKuma Alert:" + monitorJSON["name"],
|
|
|
|
|
"body": "[🔴 Down]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
|
|
|
|
|
}
|
|
|
|
|
await axios.post(pushbulletUrl, downdata, config)
|
|
|
|
|
} else if (heartbeatJSON["status"] == 1) {
|
|
|
|
|
let updata = {
|
|
|
|
|
"type": "note",
|
|
|
|
|
"title": "UptimeKuma Alert:" + monitorJSON["name"],
|
|
|
|
|
"body": "[✅ Up]" + heartbeatJSON["msg"] + "\nTime (UTC):" + heartbeatJSON["time"],
|
|
|
|
|
}
|
|
|
|
|
await axios.post(pushbulletUrl, updata, config)
|
|
|
|
|
}
|
|
|
|
|
return okMsg;
|
|
|
|
|
} catch (error) {
|
|
|
|
|
throwGeneralAxiosError(error)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
throw new Error("Notification type is not supported")
|
|
|
|
|
}
|
|
|
|
|