vizCard.ctrl.js
3.55 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
var fs = require('fs');
var moment = require('moment');
var _ = require('lodash');
var env = process.env.NODE_ENV || 'development';
var rp = require('request-promise');
var logger = require('../../logger/logger');
var cfg = require('../../config/config.js').get(env);
var request = require('request');
var parseJson = require('xml-js');
var _url = `http://10.1.3.74:8080`;
var stats = require('../helper/stats.js');
var messageSOAP = require('../helper/messageSOAP.js');
var validatorHelper = require('../helper/validator.js');
exports.vizcard = async function (req, res, next) {
var err = validator(req,"GET VIZCard");
if(err.length > 0)
{
var response = {
resultCode : "40300",
developerMessage : "Missing or invalid parameter"
};
res.status(200).json(response);
}else
{
// var requestXml = `<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
// <soap:Header/>
// <soap:Body>
// <tem:SearchCustomer>
// <tem:username>axviz</tem:username>
// <tem:password>1234</tem:password>
// <tem:systemName>30</tem:systemName>
// <tem:queryType>1</tem:queryType>
// <tem:cardId>${req.params.id}</tem:cardId>
// </tem:SearchCustomer>
// </soap:Body>
// </soap:Envelope>`
var objectData = {
Username : "axviz",
Password : "1234",
SystemName : "30",
QueryType : "1",
CardId : req.query.commandId,
firstName : req.query.firstName,
lastName : req.query.lastName,
emailAddress : req.query.emailAddress,
moblieNo : req.query.moblieNo
};
var soap = messageSOAP.objectToSOAP(objectData,"SearchCustomer")
// console.log(soap);
// console.log(requestXml);
// console.log(req.query.fields)
const result = await asyncRequest({
url : _url,
body : soap,
method : 'POST'
});
// parseString(result.body, function (err, result1) {
// console.log(result1);
// });
var resultSoap = parseJson.xml2json(result.body, {compact: true, spaces: 4})
resultSoap = JSON.parse(resultSoap)
resultSoap = resultSoap['soap:Envelope']['soap:Body']['tem:SearchCustomerResponse']['tem:SearchCustomerResult']['tem:CustomerSearchResult'];
var resultData = messageSOAP.soapToArray(req,resultSoap);
var response = {
resultCode : "20000",
developerMessage : "Success",
resultData : resultData,
rowCount : resultData.length
};
res.status(200).json(response);
}
};
function validator(req,api)
{
var list = [];
list.push("commandId");
list.push("firstName");
list.push("lastName");
list.push("emailAddress");
list.push("mobileNo");
return validatorHelper(req,list,api);
}
function asyncRequest (params = {}) {
return new Promise((resolve, reject) => {
request(params, function (error, response, body) {
if (error) {
// reject(error);
resolve({
'body' : body,
'err': error
});
} else {
resolve({
'body' : body,
'response': response
});
}
});
});
}