messageSOAP.js
2.3 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
var soap = [];
soap.objectToSOAP = function (objectData,tag){
var header = '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/"><soap:Header/><soap:Body>';
var footer = "</soap:Body></soap:Envelope>";
var body = "<tem:"+tag+">"+getBodySOAP(objectData)+"</tem:"+tag+">";
return header+body+footer;
};
soap.soapToArray = function(req,resultSoap)
{
var returnData = [];
if(req.query.fields){
var listFields = req.query.fields.split(",");
console.log(listFields)
}
var resultSet = [];
if(Array.isArray(resultSoap))
{
for(var i=0;i<resultSoap.length;i++)
{
var row = resultSoap[i];
delete row._comment;
resultSet.push(row);
}
}else
{
delete resultSoap._comment;
resultSet.push(resultSoap);
}
// console.log(resultSet);
for(var i=0;i<resultSet.length;i++)
{
var data = {}
for(var key in resultSet[i]){
var keyObj = capitalizeFirstLetter(key.replace('tem:',''))
// console.log(keyObj+' : '+resultSet[i][key]['_text']);
if(listFields){
if(listFields.includes(keyObj)){
data[keyObj] = resultSet[i][key]['_text'];
}
} else {
data[keyObj] = resultSet[i][key]['_text'];
}
}
returnData.push(data);
}
return returnData;
};
function getBodySOAP(objectData)
{
var body = "";
if(typeof objectData != 'undefined')
{
var keyList = Object.keys(objectData);
for(var i=0;i<keyList.length;i++)
{
if(typeof objectData[keyList[i]] != 'object')
body += "<tem:"+keyList[i]+">"+objectData[keyList[i]]+"</tem:"+keyList[i]+">";
else
body += "<tem:"+keyList[i]+">"+getBodySOAP(objectData[keyList[i]])+"</tem:"+keyList[i]+">";
}
}
return body;
}
function capitalizeFirstLetter(string) {
return string.charAt(0).toLowerCase() + string.slice(1);
}
module.exports = soap;