New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

appzone

Package Overview
Dependencies
Maintainers
0
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

appzone - npm Package Compare versions

Comparing version 0.1.6 to 0.2.1beta

.buildpath

163

lib/appzone.js

@@ -27,6 +27,2 @@ /**

var rest = require("restler");
var xml2js = require("xml2js-expat");
var connect = require('connect');
Array.prototype.contains = function(obj) {

@@ -42,141 +38,24 @@ var i = this.length;

exports.load = function(host, appId, pass) {
return new Appzone(host, appId, pass);
/**
* Returns an instance of Appzone Sender
*
* @param url - url of the Appzone Server eg:- http://localhost:8000
* @param appId - appId for appzone
* @param password - password for appzone
* @param retryInterval (optional) - the Interval between retry message sending
* if a message failed to send correctly. Default is 30 seconds.
* @param retryLimit (optional)- no retries before give up sending the message.
* Default is 5
*/
exports.sender = function(url, appId, password, retryInterval, retryLimit) {
return require('./sender').load(url, appId, password, retryInterval, retryLimit);
};
function Appzone(host, appId, pass) {
this.sendMessage = function(address, message, callback, retry) {
var tries = 0;
if(retry) {
sendMessageRetry("tel:" + address, message, callback, 1);
} else {
sendMessage_("tel:" + address, message, callback);
}
};
this.broadcast = function(message, callback, retry) {
if(retry) {
sendMessageRetry("list:registered", message, callback, 1);
} else {
sendMessage_("list:registered", message, callback);
}
};
var sendMessageRetry = function(address, message, callback, count) {
var retryCodes = ["SBL-SMS-MT-5000", "SBL-SMS-MT-5008", "SBL-SMS-MT-5001",
"SBL-SMS-MT-5004", "CORE-SMS-MT-4049", "CORE-SMS-MT-4030",
"CORE-SMS-MT-4016"];
if(count> 5) {
console.error("maximum retry limit exeeded when sending message to: " + host + " for:" + address);
} else {
sendMessage_(address, message, function(status) {
if(!status || retryCodes.contains(status.status_code)) {
console.log("retrying for: " + count + " of message: " + message + " to address:" + address);
setTimeout(function() {
sendMessageRetry(address, message, callback, count + 1);
}, 30000);
} else {
if(callback) callback(status);
}
});
}
};
var sendMessage_ = function(address, message, callback) {
rest.post(host, {
username: appId,
password: pass,
data: {
version: "1.0",
address: address,
message: message
}
}).on("complete", function(data, response) {
if(response.statusCode == 200) {
var pasedData = parseXML(data, function(status) {
if(callback) callback(status);
});
console.info("message send to address: " + address);
} else {
console.error("Appzone Sending message failed with statusCode: " + response.statusCode);
if(callback) callback(null);
}
}).on("error", function(err) {
console.error("Something wrong with the appzone host:" + host);
});
};
var parseXML = function(data, callback) {
var p = new xml2js.Parser();
p.addListener("end", function(obj) {
callback(obj);
});
p.parseString(data);
};
/**
* Receive for SMS on a given port and calls the callback with following object
* {
* version: "1.0",
* address: "2324324243234",
* message: "the message content",
* correlator: "34343434343"
* }
*/
this.receive = function(port, callback) {
var app = connect.createServer(
connect.bodyParser(),
receiveLogic
).listen(port);
function receiveLogic(req, res) {
if(req.method.toUpperCase() == "POST") {
var message = {
version: req.body.version,
address: req.body.address,
message: req.body.message,
correlator: req.body.correlator
};
if(requestCheck(message)) {
console.info("receiving SMS from appzone: " + JSON.stringify(message));
callback(message);
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("");
} else {
console.info("few of required parameters are not exists. current requets: " + JSON.stringify(message));
res.writeHead(404, {"Content-Type": "text/plain"});
res.end("Please provide all the required paramerers");
}
} else {
console.info("unsupported method: " + req.method + " received");
res.writeHead(404, {"Content-Type": "text/plain"});
res.end("Please provide all the required paramerers");
}
}
/**
* Check the request for all the required parameters
*/
function requestCheck(message) {
for(key in message) {
if(!message[key]) {
return false;
}
}
return true;
}
};
}
/**
* Returns an instance of Appzone Receiver
*
* @param port - port which listen for messages from Appzone
*/
exports.receiver = function(port) {
return require('./receiver').load(port);
};
{
"name": "appzone",
"version": "0.1.6",
"version": "0.2.1beta",
"directories": {

@@ -5,0 +5,0 @@ "lib": "./lib"

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc