• cellsynt.js
  • 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;