var env = process.env.NODE_ENV || 'development'; var cfg = require('../../config/config.js').get(env); var stats = require('../helper/stats.js'); var request = require('request'); var messageSOAP = require('../helper/messageSOAP.js'); var log = require('../helper/log.js'); var connection = []; connection.requestSoapToSACF = async function (soap,cmd,myMethod) { var params = { url : cfg.service.SACF[myMethod+"_"+cmd+"_URL"], body : messageSOAP.objectToSOAP(soap,cmd), method : myMethod, timeout : cfg.service.SACF[myMethod+"_"+cmd+"_Timeout"] } stats.sendSACFRequest(cfg.service.SACF.Name,cmd) log.logDetail.addOutput(cfg.service.SACF.Name,cmd,"Request",params.body,soap); log.logDetail.write(); return asyncRequest(params,cmd,cfg.service.SACF.Name); }; connection.requestJsonToD01 = async function (obj,cmd,myMethod) { var service = cfg.service.D01; // JSON.stringify(json) var params = { url : service[myMethod+"_"+cmd+"_URL"], body : obj, method : myMethod, timeout : service[myMethod+"_"+cmd+"_Timeout"] } var result = {}; result.response = {}; result.response.resultData = []; if(params.method == "GET") { var genUrl = getUrl(params,service[myMethod+"_Limit"]); // genUrl.push(genUrl[0].replace("8080","8081")); if(genUrl.length > 1) { // console.log("multi Send"); var multiSend = []; for(var i=0;i { request(params, function (error, response, body) { if (error) { // console.log("End : "+new Date().toISOString()); console.log(error.code); resolve({ 'body' : body, 'err' : error }); } else { // stats.reciveResponse(node,cmd,"Success"); resolve({ 'body' : body, 'response' : response }); } }); }); }; function getUrl(params,limit) { var returnData = []; var url = params.url; var fields = ""; var filter = { base : "", multi : [] }; // params.body = {}; // params.body.a = "aaa"; // params.body.b = "bbb"; // params.body.papa = []; // params.body.papa.push("1"); // params.body.papa.push("2"); // params.body.commandId = []; // params.body.commandId.push("1"); // params.body.commandId.push("2"); // params.body.commandId.push("3"); // params.body.commandId.push("4"); // params.body.commandId.push("5"); // params.body.commandId.push("6"); // params.body.commandId.push("7"); // params.body.commandId.push("8"); // params.body.c = "ccc"; // params.body.fields = "a,b,c,d"; // console.log(params.body); if(params.body) { var first = true; for (key in params.body) { if(key == "fields") fields = getFields(params.body.fields,first); else filter = getfilter(filter,key,params.body[key]); first = false; } if(first) fields = "?limit="+limit; else fields = "&limit="+limit; } if(filter.multi.length > 0) { //have multi var careData = filter.multi[0]; // console.log(freeSpace); for(var i=0;i careData.length) { filter.base = filter.base+"(|"+careData.data+")"; careData = filter.multi[i]; } } var myUrl = url+"?filter=("+filter.base+")"+fields; var freeSpace = cfg.Uri_length - myUrl.length; var arr = careData.data.split(")("); for(var j=0;j (arrData[i].length+3)) { loopUrl = loopUrl + arrData[i]; loopSpace = loopSpace - arrData[i].length; }else { if(loopUrl != "") { arrUrl.push(url+"?filter=("+filter+"(|"+loopUrl+")"+fields); loopUrl = arrData[i]; loopSpace = freeSpace - arrData[i].length; } } } if(loopUrl != "") arrUrl.push(url+"?filter=("+filter+"(|"+loopUrl+")"+fields); return arrUrl; } module.exports = connection;