summaryrefslogtreecommitdiff
path: root/build/core/Notification.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-11-28 17:14:38 +0100
committerMinteck <contact@minteck.org>2022-11-28 17:14:38 +0100
commit18efd30a263ec0d79a26a82cbd8c90c9f81056b7 (patch)
treeaea01bf3506dda706719fc68eb37b77ed9ef3fe8 /build/core/Notification.js
downloadautoreport-mane.tar.gz
autoreport-mane.tar.bz2
autoreport-mane.zip
Open sourceHEADmane
Diffstat (limited to 'build/core/Notification.js')
-rw-r--r--build/core/Notification.js51
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