tm-sdk
Version:
tenmove copyright, node base module
143 lines (116 loc) • 3.42 kB
JavaScript
var errors = require('./error');
var commonlibError = errors.commonlibError;
var request = require('request');
var querystring = require('querystring');
function isErrorOrUndefined(data) {
if (data === null || data === undefined) {
return true;
}
return false;
}
function isString(data) {
if (isErrorOrUndefined(data)) {
throw commonlibError("func(isString)'s input is invalid!");
}
if (typeof(data) === typeof('')) {
return true;
}
return false;
}
function isEmptyObject(object) {
if (isErrorOrUndefined(object)) {
throw commonlibError("func(isEmptyObject)'s input is invalid!");
}
for (var idx in object) {
return false;
}
return true;
}
function verifyInput(template, input) {
var output = {};
if (isErrorOrUndefined(input) || isErrorOrUndefined(template)) {
throw commonlibError("func(verifyInput)'s input is invalid!");
}
if(isEmptyObject(input)) {
return null;
}
try {
for (var param in template) {
if (typeof(input[param]) == typeof(template[param])) {
output[param] = input[param];
} else {
// 参数不对
// logger.error('error param ' + param + '(' + input[param] + ')');
return null;
}
}
return output;
} catch(e) {
throw commonlibError("func(verifyInput)'s input is invalid!");
}
}
function containValueInArray(value, array) {
if (isErrorOrUndefined(value) || isErrorOrUndefined(array)) {
throw commonlibError("func(containValueInArray)'s input is invalid!");
}
try {
var i = array.length;
while(i--) {
if (array[i] == value) {
return true;
}
}
return false;
} catch(e) {
throw commonlibError("func(containValueInArray)'s input is invalid!");
}
}
function getIPSegment(ip) {
if (!isString(ip)) {
throw commonlibError("func(getIPSegment)'s input is invalid!");
}
var strlist = ip.split('.');
if (strlist.length != 4) {
throw commonlibError("func(getIPSegment)'s input is invalid!");
}
var ipseg = '';
for (var idx = 0; idx < 3; ++idx) {
if (ipseg != '') {
ipseg += '.';
}
ipseg += strlist[idx];
}
return ipseg;
}
function sendHttpData(url, method, data, headers, cb) {
var options = {
method: method,
headers: headers
};
if (method == 'get') {
options.url = url + '?' + data,
options.body = ''
} else if (method == 'post') {
options.url = url,
options.body = data
}
request(options, function(err, res, body){
if(err) {
return cb(err);
}
cb(null, body);
})
}
function encodeQueryString(data) {
return querystring.stringify(data);
}
module.exports = {
isErrorOrUndefined: isErrorOrUndefined,
isString: isString,
isEmptyObject: isEmptyObject,
verifyInput: verifyInput,
containValueInArray: containValueInArray,
getIPSegment: getIPSegment,
sendHttpData: sendHttpData,
encodeQueryString: encodeQueryString
}