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://localhost:8080` exports.vizcard = async function (req, res, next) { var requestXml = ` axviz 1234 30 1 ${req.params.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 = {}; response['resultCode'] = '20000'; response['developerMessage'] = 'Success'; 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']; } } res.status(200).json(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) { reject(error); } else { resolve({ 'body' : body, 'response': response }); } }); }); }