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 connection = []; connection.requestSoapToSPW = async function (soap,cmd,myMethod) { var params = { url : cfg.service.SPW[myMethod+"_"+cmd+"_URL"], body : messageSOAP.objectToSOAP(soap,cmd), method : myMethod } return asyncRequest(params,cmd,cfg.service.SPW.Name); }; connection.requestJsonToD01 = async function (obj,cmd,myMethod) { // JSON.stringify(json) var params = { url : cfg.service.D01[myMethod+"_"+cmd+"_URL"], body : obj, method : myMethod } if(params.method == "GET") { var genUrl = getUrl(params); genUrl.push(genUrl[0]); if(genUrl.length > 1) { // console.log("multi Send"); var multiSend = []; var loopData = {}; for(var i=0;i { request(params, function (error, response, body) { stats.sendRequest(node,cmd); if (error) { // console.log("error"); console.log("Start : "+new Date()); stats.reciveResponse(node,cmd,"Error"); resolve({ 'body' : body, 'err' : error }); } else { // console.log("normal"); console.log("End : "+new Date().toISOString()); // stats.reciveResponse(node,cmd,"Success"); resolve({ 'body' : body, 'response' : response }); } }); }); }; function getUrl(params) { var returnData = []; var url = params.url; var fields = ""; var filter = ""; // 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(filter != "") { var maxFilterLength = cfg.Uri_length - url.length - fields.length + "?filter=(&)".length; if(maxFilterLength > filter.length) { returnData.push(url+"?filter=(&"+filter+")"+fields); }else { // while(maxFilterLength < filter.length) // { // returnData.push(url+"?filter=(&"+filter+")"+fields); // } } } // console.log(url); // console.log(filter); // console.log(fields); return returnData; } function getFields(fields,first) { var returnData; var prefix; if(first) prefix = "?fields="; else prefix = "&fields="; returnData = prefix+fields; return returnData; } function getfilter(filter,key,newfilter) { var returnData; returnData = filter+"("+key+"="+newfilter+")" return returnData; } module.exports = connection;