UNPKG

tm-sdk

Version:

tenmove copyright, node base module

143 lines (116 loc) 3.42 kB
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 }