'use strict'; var express = require('express'); var router = express.Router(); const request = require('request'); var parseJson = require('xml-js'); var custom_log = require('../../config/logger'); var config = require('../../config/config'); var stat = require('../../utils/SutisStat'); var alarm = require('../../utils/SutisAlarm'); var detail = require('../../utils/SutisDetail'); var logger = require('../../utils/SutisLogSummary'); var _url = `http://localhost:8080` router.get('/',async function(req, res, next) { var cmd = 'vizCard' var requestXml = ` axviz 1234 30 0 ${req.query.id} ` console.log(requestXml); // console.log(req.query.fields) const result = await asyncRequest({ url : _url, body : requestXml, method : 'POST' }); // parseString(result.body, function (err, result1) { // console.log(result1); // }); var result1 = parseJson.xml2json(result.body, {compact: true, spaces: 4}) result1 = JSON.parse(result1) result1 = result1['soap:Envelope']['soap:Body']['tem:SearchCustomerResponse']['tem:SearchCustomerResult']['tem:CustomerSearchResult']; delete result1._comment; var response = {}; if(req.query.fields){ var listFields = req.query.fields.split(","); // console.log(listFields) } for(var key in result1){ var keyObj = capitalizeFirstLetter(key.replace('tem:','')) // console.log(keyObj+' : '+result1[key]['_text']); if(listFields){ if(listFields.includes(keyObj)){ response[keyObj] = result1[key]['_text']; } } else { response[keyObj] = result1[key]['_text']; } } stat.recv(cmd, '20000'); stat.retn(cmd, '20000'); res.status(200).json({ resultCode: '20000', resultDescription: 'Success', resultData: response }); }); function capitalizeFirstLetter(string) { return string.charAt(0).toLowerCase() + string.slice(1); } function asyncRequest (params = {}) { return new Promise((resolve, reject) => { request(params, function (error, response, body) { if (error) { (error); } else { resolve({ 'body' : body, 'response': response }); } }); }); } module.exports = router;