You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.4 KiB
40 lines
1.4 KiB
8 months ago
|
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;
|