connection.js
2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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 = 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 = function (obj,cmd,myMethod) {
// JSON.stringify(json)
var params = {
url : cfg.service.D01[myMethod+"_"+cmd+"_URL"],
body : obj,
method : myMethod
}
if(params.method == "GET")
{
params.url = getUrl(params);
delete params.body;
}else if(params.method == "POST")
{
params.body = JSON.stringify(params.body);
}
return asyncRequest(params,cmd,cfg.service.D01.Name);
};
function asyncRequest (params = {},cmd,node) {
// console.log(params);
return new Promise((resolve, reject) => {
request(params, function (error, response, body) {
stats.sendRequest(node,cmd);
if (error) {
// console.log("error");
stats.reciveResponse(node,cmd,"Error");
resolve({
'body' : body,
'err' : error
});
} else {
// console.log("normal");
stats.reciveResponse(node,cmd,"Success");
resolve({
'body' : body,
'response' : response
});
}
});
});
};
function getUrl(params)
{
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 != "")
filter = "?filter=(&"+filter+")";
// console.log(url);
// console.log(filter);
// console.log(fields);
return url+filter+fields;
}
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;