summaryrefslogtreecommitdiffstats
path: root/server/notification-providers/cellsynt.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/notification-providers/cellsynt.js')
-rw-r--r--server/notification-providers/cellsynt.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/server/notification-providers/cellsynt.js b/server/notification-providers/cellsynt.js
new file mode 100644
index 0000000..e842237
--- /dev/null
+++ b/server/notification-providers/cellsynt.js
@@ -0,0 +1,39 @@
+const NotificationProvider = require("./notification-provider");
+const axios = require("axios");
+
+class Cellsynt extends NotificationProvider {
+ name = "Cellsynt";
+
+ /**
+ * @inheritdoc
+ */
+ async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
+ const okMsg = "Sent Successfully.";
+ const data = {
+ // docs at https://www.cellsynt.com/en/sms/api-integration
+ params: {
+ "username": notification.cellsyntLogin,
+ "password": notification.cellsyntPassword,
+ "destination": notification.cellsyntDestination,
+ "text": msg.replace(/[^\x00-\x7F]/g, ""),
+ "originatortype": notification.cellsyntOriginatortype,
+ "originator": notification.cellsyntOriginator,
+ "allowconcat": notification.cellsyntAllowLongSMS ? 6 : 1
+ }
+ };
+ try {
+ const resp = await axios.post("https://se-1.cellsynt.net/sms.php", null, data);
+ if (resp.data == null ) {
+ throw new Error("Could not connect to Cellsynt, please try again.");
+ } else if (resp.data.includes("Error:")) {
+ resp.data = resp.data.replaceAll("Error:", "");
+ throw new Error(resp.data);
+ }
+ return okMsg;
+ } catch (error) {
+ this.throwGeneralAxiosError(error);
+ }
+ }
+}
+
+module.exports = Cellsynt;