generator-bingo-dig-h5
Version:
Bingo-dig-h5 generator by BINGO.DIG
98 lines (86 loc) • 2.62 kB
JavaScript
var request = require('superagent');
var UniqueId = require('./unique-id');
var Convert = require('./convert');
var dbAddress = '';
var formatResponse = function(resp, error, retrunDataType) {
var result = {};
var dmsReturnObj = {};
if (resp && resp.ok) {
dmsReturnObj = Convert.jsonToObj(resp.text);
result.ok = true;
result.status = dmsReturnObj.resultCode;
result.statusText = dmsReturnObj.resultDesc;
result.affectedRows = dmsReturnObj.affectedRows;
result.RowsCount = dmsReturnObj.rows.length;
result.data = formatReturnData(dmsReturnObj.columnNames, dmsReturnObj.rows, retrunDataType);
}
else{
result.ok = false;
result.status = resp ? resp.status : 0;
result.statusText = resp ? resp.statusText : 'ERR_CONNECTION_TIMED_OUT';
result.affectedRows = -1;
result.RowsCount = 0;
result.data = null;
}
return result;
}
var formatReturnData = function(columnNames, rows, retrunDataType) {
var returnArr = [];
var type = retrunDataType || 'obj';
for (var i = 0; i < rows.length; i++) {
var obj = {};
for (var j = 0; j < columnNames.length; j++) {
obj[columnNames[j]] = rows[i][j];
}
if (type === 'obj') {
returnArr.push(obj);
}
else{
returnArr.push(Convert.objToJson(obj));
}
}
return returnArr;
}
module.exports = {
setDbAddress: function(dbAddressPara) {
dbAddress = dbAddressPara;
},
getDataWithParamsForJson: function(commandName, params, callback){
this.post(commandName, params, function(res, err){
var result = formatResponse(res, err, 'json');
callback(result);
});
},
getDataWithParams: function(commandName, params, callback){
this.post(commandName, params, function(res, err){
var result = formatResponse(res, err, 'obj');
callback(result);
});
},
getDataForJson: function(commandName, callback){
this.post(commandName, null, function(res, err){
var result = formatResponse(res, err, 'json');
callback(result);
});
},
getData: function(commandName, callback){
this.post(commandName, null, function(res, err){
var result = formatResponse(res, err, 'obj');
callback(result);
});
},
post: function(commandName, params, callback){
var obj = {};
obj.RequestId = UniqueId.generate();
obj.PrincipalId = null;
obj.CommandName = commandName;
obj.Params = Convert.jsonToObj(params);
obj = Convert.objToJson(obj);
request.post(dbAddress)
.accept('json')
.send(obj)
.end(function(err, res){
callback(res, err);
});
}
}