diff options
author | Minteck <contact@minteck.org> | 2022-11-28 17:14:38 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-11-28 17:14:38 +0100 |
commit | 18efd30a263ec0d79a26a82cbd8c90c9f81056b7 (patch) | |
tree | aea01bf3506dda706719fc68eb37b77ed9ef3fe8 /build/core/Notification.js | |
download | autoreport-mane.tar.gz autoreport-mane.tar.bz2 autoreport-mane.zip |
Diffstat (limited to 'build/core/Notification.js')
-rw-r--r-- | build/core/Notification.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/build/core/Notification.js b/build/core/Notification.js new file mode 100644 index 0000000..dcb09cf --- /dev/null +++ b/build/core/Notification.js @@ -0,0 +1,51 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const AutoreportBase_1 = __importDefault(require("./AutoreportBase")); +const Report_1 = require("../types/Report"); +class Notification extends AutoreportBase_1.default { + constructor(report) { + super(); + this.service = report.service; + this.report = report; + } + async send() { + let message; + switch (this.report.severity) { + case Report_1.ReportSeverity.Low: + message = "Service " + this.service + " has encountered a minor error"; + break; + case Report_1.ReportSeverity.Medium: + message = "Service " + this.service + " has encountered an error"; + break; + case Report_1.ReportSeverity.High: + message = "Service " + this.service + " has encountered a major error"; + break; + case Report_1.ReportSeverity.Critical: + message = "Service " + this.service + " has encountered a critical error"; + break; + case Report_1.ReportSeverity.Fatal: + message = "Service " + this.service + " has encountered a fatal error"; + break; + } + await fetch("https://" + AutoreportBase_1.default.config.notifications.server, { + method: "POST", + body: JSON.stringify({ + topic: AutoreportBase_1.default.config.notifications.topic, + message, + title: "A service encountered an error", + tags: ["crash", "service:" + this.service], + priority: 3, + actions: [{ "action": "view", "label": "Open report", "url": AutoreportBase_1.default.config.base + "/#/report/" + this.report.id }] + }), + headers: { + "Authorization": "Basic " + Buffer.from(AutoreportBase_1.default.config.notifications.user + ":" + AutoreportBase_1.default.config.notifications.password).toString("base64"), + "Content-Type": "application/json" + } + }); + } +} +exports.default = Notification; +//# sourceMappingURL=Notification.js.map
\ No newline at end of file |