var stats = require('../helper/stats.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'); var constant = require('../helper/constants.js') exports.postCustomer = async function (req, res, next){ var getCmd = "Customer"; var sendCmd = "Customer"; var d01 = "D01"; var method = constant.METHOD.POST; if(req.body.user.userData && req.body.user.userType){ var customerId = req.body.user.userData+"@"+req.body.user.userType; } log.startlog(req,method+"_"+getCmd,req.body.commandId,customerId); log.logDetail.addInput(req,req.body.clientName,method+"_"+getCmd,constant.REQUEST,req,req.body); var err = await validator(req,getCmd); if(err.length > 0) { log.addErrorSummary(req,req.body.clientName,method+"_"+getCmd,"null",constant.FAIL); console.log(err); var response = responseMsg.error(req,getCmd,40300); }else { log.addSuccessSummary(req,req.body.clientName,method+"_"+getCmd,"null",constant.SUCCESS); var objectData = { customerId : customerId, userIdData : req.body.user.userData, userIdType : req.body.user.userType, firstName : req.body.firstName, lastName : req.body.lastName, mobile : req.body.mobile, emailAddress : req.body.emailAddress, dateCreated : req.body.dateCreated }; const result = await connection.requestJsonToD01(req,objectData,sendCmd,method); log.logDetail.addInput(req,d01,method+"_"+sendCmd,constant.RESPONSE,result,result.response); if(typeof result.err === 'undefined'){ // console.log(result.response.body); var resultObj = result.response; if(resultObj.resultCode.startsWith("2")){ stats.receiveRestResponse(d01,method,sendCmd,constant.SUCCESS); var response = responseMsg.direct(req,getCmd,resultObj,{customerId:objectData.customerId}); log.addSuccessSummary(req,d01,method+"_"+sendCmd,response.resultCode,response.developerMessage); } else if(resultObj.resultCode.startsWith("404")){ stats.receiveRestResponse(d01,method,sendCmd,constant.RESPONSERESULT.DATA_NOT_FOUND.developerMessage); var response = responseMsg.direct(req,getCmd,resultObj); log.addErrorSummary(req,d01,method+"_"+sendCmd,resultObj.resultCode,resultObj.developerMessage); } else if(resultObj.resultCode.startsWith("5")){ stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR); var response = responseMsg.direct(req,getCmd,resultObj); log.addErrorSummary(req,d01,method+"_"+sendCmd,resultObj.resultCode,resultObj.developerMessage); } else { stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR); var response = responseMsg.error(req,getCmd,50000); } } else { stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR); var response = responseMsg.error(req,getCmd,50000); } } log.logDetail.addOutput(req,req.body.clientName,method+"_"+getCmd,constant.RESPONSE,response,response); res.status(200).json(response); next(); }; function validator(req,api) { // console.log(req.body); var list = []; list.push([true,"body","user.userType","string"]); list.push([true,"body","user.userData","string"]); list.push([true,"body","commandId","string"]); list.push([true,"body","clientName","string"]); list.push([true,"body","firstName","string"]); list.push([true,"body","lastName","string"]); list.push([true,"body","mobile","string"]); list.push([true,"body","emailAddress","string"]); var err = validatorHelper(req,list,api) if(err.length > 0) stats.receiveBadRequest(req.method,api); else stats.receiveRequest(req.method,api); return err; }