diff --git a/ais-structure/src/config/config.js b/ais-structure/src/config/config.js index de04bb7..b5a50c1 100644 --- a/ais-structure/src/config/config.js +++ b/ais-structure/src/config/config.js @@ -16,10 +16,23 @@ var config = { KEY: "./PANDORA_CERT/server.key", CERT: "./PANDORA_CERT/server.pem", PREFIX: "/phxPartner/v1/partner" + }, + SPW:{ + Name : "SPW API", + POST_SearchCustomer_URL : "http://10.1.3.172:8080", + POST_SearchCustomer_Timeout : 10 + + }, + D01:{ + Name : "CMF DB", + GET_Customer_URL : "http://10.1.3.74:8080", + GET_Customer_Timeout : 10 + } }, http_req_timeout: 120, - session: 30 //minutes + session: 30, //minutes + Default_Timeout: 10 } }; /* ------------- [END SERVER CONFIG VARIABLES] ------------ */ diff --git a/ais-structure/src/modules/customer/customer.ctrl.js b/ais-structure/src/modules/customer/customer.ctrl.js new file mode 100644 index 0000000..90826d2 --- /dev/null +++ b/ais-structure/src/modules/customer/customer.ctrl.js @@ -0,0 +1,90 @@ +var stats = require('../helper/stats.js'); +var validatorHelper = require('../helper/validator.js'); +var connection = require('../helper/connection.js'); +var responseMsg = require('../helper/responseMsg.js'); + +exports.customer = async function (req, res, next) { + var getCmd = "Customer"; + var sendCmd = "Customer"; + + 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 = req.query; + + const result = await connection.requestJsonToD01(objectData,sendCmd,"GET"); + + // console.log(result.err) + + if(typeof result.err === 'undefined'){ + + if(result.response.resultCode == "20000") + { + if(result.response.resultData && result.response.resultData.length>0) + { + var response = responseMsg.success(req,getCmd,result.response); + }else + { + var response = responseMsg.error(req,getCmd,40300); + } + + } + + + } + + if(!response) + var response = responseMsg.error(req,getCmd,5000); + + res.status(200).json(response); + } +}; + + +function validator(req,api) +{ + var list = []; + list.push([true,"commandId","String"]); + + var err = validatorHelper(req,list,api) + + //oc + if((typeof req.query["customerId"] === 'undefined') && (typeof req.query["userType"] === 'undefined')) + { + var errDes = { + Param : "customerId or userType", + Reason : "Missing" + } + err.push(errDes); + + }else + { + if((typeof req.query["userType"] !== 'undefined') && (typeof req.query["userData"] === 'undefined')) + { + var errDes = { + Param : "userData", + Reason : "Missing" + } + err.push(errDes); + } + + } + + if(err.length > 0) + stats.reciveRequest(req.method,api,false); + else + stats.reciveRequest(req.method,api,true); + + return err; +} + + diff --git a/ais-structure/src/modules/customer/customer.route.js b/ais-structure/src/modules/customer/customer.route.js new file mode 100644 index 0000000..daeaec2 --- /dev/null +++ b/ais-structure/src/modules/customer/customer.route.js @@ -0,0 +1,9 @@ +module.exports = function (app) { + var customerCtrl = app.modules.customer.customerCtrl; + + app.get('/cmf/v2/customer/customerId.json', + customerCtrl.customer + ); + + +}; diff --git a/ais-structure/src/modules/helper/connection.js b/ais-structure/src/modules/helper/connection.js new file mode 100644 index 0000000..bb34304 --- /dev/null +++ b/ais-structure/src/modules/helper/connection.js @@ -0,0 +1,62 @@ +var env = process.env.NODE_ENV || 'development'; +var cfg = require('../../config/config.js').get(env); +var stats = require('../helper/stats.js'); +var request = require('request'); +var messageSOAP = require('../helper/messageSOAP.js'); +var connection = []; + +connection.requestSoapToSPW = function (soap,cmd,myMethod) { + + var params = { + url : cfg.service.SPW[myMethod+"_"+cmd+"_URL"], + body : messageSOAP.objectToSOAP(soap,cmd), + method : myMethod + } + + return asyncRequest(params,cmd,cfg.service.SPW.Name); +}; +connection.requestJsonToD01 = function (json,cmd,myMethod) { + + var params = { + url : cfg.service.D01[myMethod+"_"+cmd+"_URL"], + body : JSON.stringify(json), + method : myMethod + } + + return asyncRequest(params,cmd,cfg.service.D01.Name); + + +}; + +function asyncRequest (params = {},cmd,node) { + + + + // console.log(params); + return new Promise((resolve, reject) => { + request(params, function (error, response, body) { + + stats.sendRequest(node,cmd); + + if (error) { + // console.log("error"); + stats.reciveResponse(node,cmd,"Error"); + resolve({ + 'body' : body, + 'err' : error + }); + } else { + // console.log("normal"); + stats.reciveResponse(node,cmd,"Success"); + resolve({ + 'body' : body, + 'response' : response + }); + } + }); + }); +}; + + + +module.exports = connection; \ No newline at end of file diff --git a/ais-structure/src/modules/helper/responseMsg.js b/ais-structure/src/modules/helper/responseMsg.js new file mode 100644 index 0000000..4466279 --- /dev/null +++ b/ais-structure/src/modules/helper/responseMsg.js @@ -0,0 +1,39 @@ +var stats = require('../helper/stats.js'); +var responseMsg = []; + + +responseMsg.error = function (req,cmd,code){ + + var devMsg = "System error"; + switch(code) { + case 50000: + devMsg = "System error"; + break; + case 40300: + devMsg = "Missing or invalid parameter"; + break; + } + + var response = { + resultCode : code, + developerMessage : devMsg + }; + + stats.sendResponse(req.method,cmd,"Error"); + return response; +}; + +responseMsg.success = function (req,cmd,data){ + + var response = { + resultCode : 20000, + developerMessage : "Success", + resultData : data.resultData, + rowCount : data.rowCount + }; + + stats.sendResponse(req.method,cmd,"Success"); + return response; +}; + +module.exports = responseMsg; \ No newline at end of file diff --git a/ais-structure/src/modules/helper/stats.js b/ais-structure/src/modules/helper/stats.js index 4cb0a4f..e109a61 100644 --- a/ais-structure/src/modules/helper/stats.js +++ b/ais-structure/src/modules/helper/stats.js @@ -6,23 +6,23 @@ var stat = []; -stat.reciveRequest = function (api,pass){ +stat.reciveRequest = function (method,cmd,pass){ if(pass) - writeStats(nodeName+" Recive "+api+" Request"); + writeStats(nodeName+" Recive "+method+" "+cmd+" Request"); else - writeStats(nodeName+" Recive Bad "+api+" Request"); + writeStats(nodeName+" Recive Bad "+method+" "+cmd+" Request"); }; -stat.reciveResponse = function (fromNode,api,result){ - writeStats(nodeName+" Recive "+fromNode+" "+api+" Response "+result); +stat.reciveResponse = function (fromNode,cmd,result){ + writeStats(nodeName+" Recive "+fromNode+" "+cmd+" Response "+result); }; -stat.sendRequest = function (toNode,api){ - writeStats(nodeName+" Send "+toNode+" "+api+" Request"); +stat.sendRequest = function (toNode,cmd){ + writeStats(nodeName+" Send "+toNode+" "+cmd+" Request"); }; -stat.sendResponse = function (api,result){ - writeStats(nodeName+" Send "+api+" Response "+result); +stat.sendResponse = function (method,cmd,result){ + writeStats(nodeName+" Send "+method+" "+cmd+" Response "+result); }; function writeStats(string) { diff --git a/ais-structure/src/modules/helper/validator.js b/ais-structure/src/modules/helper/validator.js index 695020f..17bf0b0 100644 --- a/ais-structure/src/modules/helper/validator.js +++ b/ais-structure/src/modules/helper/validator.js @@ -1,6 +1,4 @@ -var stats = require('../helper/stats.js'); - -module.exports = function (req,list,api){ +module.exports = function (req,list){ var err = []; @@ -13,7 +11,7 @@ module.exports = function (req,list,api){ if(row[0]) { var errDes = { - Param : row, + Param : row[1], Reason : "Missing" } err.push(errDes); @@ -22,7 +20,7 @@ module.exports = function (req,list,api){ if(!checkReg(row[2],req.query[row[1]])) { var errDes = { - Param : row, + Param : row[1], Reason : "Invalid" } err.push(errDes); @@ -34,7 +32,7 @@ module.exports = function (req,list,api){ if(!checkReg(row[2],req.query[row[1]])) { var errDes = { - Param : row, + Param : row[1], Reason : "Invalid" } err.push(errDes); @@ -44,10 +42,7 @@ module.exports = function (req,list,api){ } - if(err.length > 0) - stats.reciveRequest(api,false); - else - stats.reciveRequest(api,true); + // console.log(err); diff --git a/ais-structure/src/modules/vizcard/vizCard.ctrl.js b/ais-structure/src/modules/vizcard/vizCard.ctrl.js index 349acd9..02f5342 100644 --- a/ais-structure/src/modules/vizcard/vizCard.ctrl.js +++ b/ais-structure/src/modules/vizcard/vizCard.ctrl.js @@ -1,47 +1,27 @@ -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'); +var connection = require('../helper/connection.js'); +var responseMsg = require('../helper/responseMsg.js'); exports.vizcard = async function (req, res, next) { + var getCmd = "VIZCard"; + var sendCmd = "SearchCustomer"; - var err = validator(req,"GET VIZCard"); + var err = validator(req,getCmd); if(err.length > 0) { console.log(err); - var response = { - resultCode : "40300", - developerMessage : "Missing or invalid parameter" - }; + var response = responseMsg.error(req,getCmd,40300); res.status(200).json(response); }else { - // var requestXml = ` - // - // - // - // axviz - // 1234 - // 30 - // 1 - // ${req.params.id} - // - // - // ` - + var objectData = { Username : "axviz", Password : "1234", @@ -54,46 +34,30 @@ exports.vizcard = async function (req, res, next) { 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' - }); + const result = await connection.requestSoapToSPW(objectData,sendCmd,"POST"); // console.log(result.err) - if(typeof result.err === 'undefined'){ + 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 resultData = messageSOAP.soapToArray(req,resultSoap); - - var response = { - resultCode : "20000", - developerMessage : "Success", - resultData : resultData, - rowCount : resultData.length - }; - } else { - var response = { - resultCode : "50000", - developerMessage : "System error" - }; + var resultSet = messageSOAP.soapToArray(req,resultSoap); + + var response = responseMsg.success(req,getCmd,{resultData:resultSet,rowCount:resultSet.length}); + } + if(!response) + var response = responseMsg.error(req,getCmd,50000); + res.status(200).json(response); } }; -function validator(req,api) +function validator(req,cmd) { var list = []; list.push([true,"commandId","int"]); @@ -103,26 +67,13 @@ function validator(req,api) list.push([true,"mobileNo","string"]); list.push([false,"mobileNo","string"]); - return validatorHelper(req,list,api); + var err = validatorHelper(req,list); + if(err.length > 0) + stats.reciveRequest(req.method,cmd,false); + else + stats.reciveRequest(req.method,cmd,true); + + return err; } -function asyncRequest (params = {}) { - return new Promise((resolve, reject) => { - request(params, function (error, response, body) { - if (error) { - console.log("error"); - resolve({ - 'body' : body, - 'err' : error - }); - } else { - console.log("normal"); - resolve({ - 'body' : body, - 'response' : response - }); - } - }); - }); -} \ No newline at end of file -- libgit2 0.21.2