hacktoberfestdockeruptime-monitoringuptimesocket-iosingle-page-appselfhostedself-hostedresponsivemonitoringwebsocketwebapp
		
		
		
		
			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.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							40 lines
						
					
					
						
							1.2 KiB
						
					
					
				
								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 {
							 | 
						|
								            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)
							 | 
						|
								            return okMsg;
							 | 
						|
								        } catch (error) {
							 | 
						|
								            this.throwGeneralAxiosError(error);
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								module.exports = Octopush;
							 | 
						|
								
							 |