vizCard.ctrl.js 2.76 KB
var parseJson = require('xml-js');

var stats = require('../helper/stats.js'); 
var messageSOAP = require('../helper/messageSOAP.js'); 
var validatorHelper = require('../helper/validator.js');
var connection = require('../helper/connection.js');
var responseMsg = require('../helper/responseMsg.js');
var log = require('../helper/log.js');

exports.vizcard = async function (req, res, next) {
    var getCmd = "VIZCard";
    var sendCmd = "SearchCustomer";
    
    log.startlog(getCmd,req);
    log.logDetail.addInput("Client",getCmd,"Request",req);
    
    // (node,cmd,type,rawData,data)
    var err = validator(req,getCmd);
    
    if(err.length > 0)
    {
        console.log(err);
        
        var response = responseMsg.error(req,getCmd,40300);

        res.status(200).json(response);
    }else
    {        
      
        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
        };

        const result = await connection.requestSoapToSPW(objectData,sendCmd,"POST");

        // console.log(result.err)

        if(typeof result.err === 'undefined'){  
               
            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 resultSet = messageSOAP.soapToArray(req,resultSoap);

            var response = responseMsg.success(req,getCmd,{resultData:resultSet,rowCount:resultSet.length});

            log.addSummary("SPW",sendCmd,response);
            
        }
        
        if(!response)
            var response = responseMsg.error(req,getCmd,50000);

        
        log.logDetail.addOutput("Client",getCmd,"Response",response,response); 
        log.logDetail.write();
        log.logSummary();
        res.status(200).json(response);
    }
};


function validator(req,cmd)
{
    var list = [];
    list.push([true,"queryStr","commandId","int"]);
    list.push([true,"queryStr","firstName","string"]);
    list.push([true,"queryStr","lastName","string"]);
    list.push([true,"queryStr","emailAddress","string"]);
    list.push([true,"queryStr","mobileNo","string"]);
    list.push([false,"queryStr","mobileNo","string"]);

    var err = validatorHelper(req,list);
    if(err.length > 0)    
        stats.reciveRequest(req.method,cmd,false);    
    else
        stats.reciveRequest(req.method,cmd,true);

    return err;
}