mirror of https://github.com/louislam/uptime-kuma
				
				
				
			
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
const NotificationProvider = require("./notification-provider");
 | 
						|
const axios = require("axios");
 | 
						|
 | 
						|
class Octopush extends NotificationProvider {
 | 
						|
 | 
						|
    name = "octopush";
 | 
						|
 | 
						|
    async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
 | 
						|
        let okMsg = "Sent Successfully.";
 | 
						|
 | 
						|
        try {
 | 
						|
        // Default - V2
 | 
						|
            if (notification.octopushVersion === 2 || !notification.octopushVersion) {
 | 
						|
                let config = {
 | 
						|
                    headers: {
 | 
						|
                        "api-key": notification.octopushAPIKey,
 | 
						|
                        "api-login": notification.octopushLogin,
 | 
						|
                        "cache-control": "no-cache"
 | 
						|
                    }
 | 
						|
                };
 | 
						|
                let data = {
 | 
						|
                    "recipients": [
 | 
						|
                        {
 | 
						|
                            "phone_number": notification.octopushPhoneNumber
 | 
						|
                        }
 | 
						|
                    ],
 | 
						|
                    //octopush not supporting non ascii char
 | 
						|
                    "text": msg.replace(/[^\x00-\x7F]/g, ""),
 | 
						|
                    "type": notification.octopushSMSType,
 | 
						|
                    "purpose": "alert",
 | 
						|
                    "sender": notification.octopushSenderName
 | 
						|
                };
 | 
						|
                await axios.post("https://api.octopush.com/v1/public/sms-campaign/send", data, config);
 | 
						|
            } else if (notification.octopushVersion === 1) {
 | 
						|
                let data = {
 | 
						|
                    "user_login": notification.octopushDMLogin,
 | 
						|
                    "api_key": notification.octopushDMAPIKey,
 | 
						|
                    "sms_recipients": notification.octopushDMPhoneNumber,
 | 
						|
                    "sms_sender": notification.octopushDMSenderName,
 | 
						|
                    "sms_type": (notification.octopushDMSMSType === "sms_premium") ? "FR" : "XXX",
 | 
						|
                    "transactional": "1",
 | 
						|
                    //octopush not supporting non ascii char
 | 
						|
                    "sms_text": msg.replace(/[^\x00-\x7F]/g, ""),
 | 
						|
                };
 | 
						|
 | 
						|
                let config = {
 | 
						|
                    headers: {
 | 
						|
                        "cache-control": "no-cache"
 | 
						|
                    },
 | 
						|
                    params: data
 | 
						|
                };
 | 
						|
                await axios.post("https://www.octopush-dm.com/api/sms/json", {}, config);
 | 
						|
            } else {
 | 
						|
                throw new Error("Unknown Octopush version!");
 | 
						|
            }
 | 
						|
 | 
						|
            return okMsg;
 | 
						|
        } catch (error) {
 | 
						|
            this.throwGeneralAxiosError(error);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
module.exports = Octopush;
 |