diff --git a/ais-structure/src/config/express.js b/ais-structure/src/config/express.js index 039cf25..9272ced 100644 --- a/ais-structure/src/config/express.js +++ b/ais-structure/src/config/express.js @@ -19,6 +19,7 @@ var memCache = require('memory-cache'); var jwtDecode = require('jwt-decode'); var uuid = require('uuid'); var log = require('../modules/helper/log.js'); +var responseMsg = require('../modules/helper/responseMsg.js'); var expireTimeDef = 30 * 60 * 1000; //minutes * seconds * 1000 ==> ms memCache.put('expires-ms-def', expireTimeDef); @@ -271,7 +272,14 @@ module.exports = function () { app.use( function( req, res, next ) { // console.log("end"); // console.log(req.res.resBody); - log.logSummary(JSON.parse(req.res.resBody)); + if(req.res.resBody) + { + log.logSummary(JSON.parse(req.res.resBody)); + }else + { + res.status(200).json(responseMsg.error(req,cmd,40400)); + } + next(); } ); return app; diff --git a/ais-structure/src/modules/helper/connection.js b/ais-structure/src/modules/helper/connection.js index 0b128ad..77dcbde 100644 --- a/ais-structure/src/modules/helper/connection.js +++ b/ais-structure/src/modules/helper/connection.js @@ -4,6 +4,7 @@ var stats = require('../helper/stats.js'); var request = require('request'); var messageSOAP = require('../helper/messageSOAP.js'); var log = require('../helper/log.js'); +var constants = require('../helper/constants.js'); var connection = []; @@ -28,41 +29,42 @@ connection.requestSoapToSACF = async function (soap,cmd,myMethod) { curRetry : 1 } - var funStats = function(){ + var funS = function(){ stats.sendSACFRequest(service.Name,cmd); - log.logDetail.addOutput(service.Name,cmd,"Request",params,soap); + log.logDetail.addOutput(service.Name,cmd,constants.REQUEST,params,soap); }; var funStats = { - start : funStats, + start : funS, error : function(response){log.addErrorSummary(service.Name,cmd,response);} }; var result = await asyncRequest(params,objectData,funStats); - if(result.err) - { - result.response = {}; - result.response.resultCode = "50000"; - - //ETIMEDOUT = timeout - //ECONNREFUSED = servercode - - if(result.err.code == 'ETIMEDOUT'){ - result.response.resultCode = "50003"; - result.response.resultDescription = "Timeout"; - } else if(result.err.code == 'ECONNREFUSED'){ - result.response.resultCode = "50002"; - result.response.resultDescription = "Reject"; - } else { - result.response.resultCode = "50000"; - result.response.resultDescription = "System error"; - } - stats.receiveResponse(cfg.service.SACF.Name,cmd,"Error"); - } + // if(result.err) + // { + // // result.response = {}; + // // result.response.resultCode = constants.RESPONSERESULT.ERROR; - return result; + + // if(result.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ + // result.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; + // // result.response.resultCode = "50003"; + // // result.response.resultDescription = "Timeout"; + // } else if(result.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ + // result.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; + // // result.response.resultCode = "50002"; + // // result.response.resultDescription = "Reject"; + // } else { + // result.response = constants.RESPONSECONN.MESSAGE.ERROR; + // // result.response.resultCode = "50000"; + // // result.response.resultDescription = "System error"; + // } + // stats.receiveResponse(service.Name,cmd,constants.ERROR); + // } + + return checkResponse(result);; }; connection.requestJsonToD01 = async function (obj,cmd,myMethod) { @@ -87,7 +89,7 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) { var funStats = function(){ stats.sendRestRequest(service.Name,myMethod,cmd); - log.logDetail.addOutput(service.Name,cmd,"Request",params,obj); + log.logDetail.addOutput(service.Name,cmd,constants.Request,params,obj); }; var funStats = { @@ -103,7 +105,7 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) { - if(params.method == "GET") + if(params.method == constants.METHOD.GET) { var genUrl = getUrl(params,service[myMethod+"_Limit"]); // genUrl.push(genUrl[0].replace("8080","8081")); @@ -149,8 +151,9 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) { if(!result.err) { - result.response.resultCode = "20000"; - result.response.developerMessage = "Success"; + result.response = constants.RESPONSECONN.MESSAGE.SUCCESS; + // result.response.resultCode = "20000"; + // result.response.developerMessage = "Success"; } @@ -172,7 +175,7 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) { } - }else if(params.method == "POST") + }else if(params.method == constants.METHOD.POST) { params.body = JSON.stringify(params.body); @@ -194,44 +197,43 @@ connection.requestJsonToD01 = async function (obj,cmd,myMethod) { result.err = "Missing resultDescription"; } - if(result.err) - { - result.response = {}; - result.response.resultCode = "50000"; - - //ETIMEDOUT = timeout - //ECONNREFUSED = servercode - - if(result.err.code == 'ETIMEDOUT'){ - result.response.resultCode = "50003"; - result.response.resultDescription = "Timeout"; - } else if(result.err.code == 'ECONNREFUSED'){ - result.response.resultCode = "50002"; - result.response.resultDescription = "Reject"; - } else { - if(result.err.indexOf("Missing") != -1){ - result.response.resultCode = "40300"; - result.response.resultDescription = result.err; - } else { - result.response.resultCode = "50000"; - result.response.resultDescription = "System error"; - } - } - - if(result.response.resultCode == "40300"){ - stats.receiveBadRestResponse(service.Name,params.method,cmd); - } else { - stats.receiveResponse(service.Name,cmd,"Error"); - } + + // if(result.err) + // { + // result.response = {}; + // result.response.resultCode = "50000"; + + // if(result.err.code == 'ETIMEDOUT'){ + // result.response.resultCode = "50003"; + // result.response.resultDescription = "Timeout"; + // } else if(result.err.code == 'ECONNREFUSED'){ + // result.response.resultCode = "50002"; + // result.response.resultDescription = "Reject"; + // } else { + // if(result.err.indexOf("Missing") != -1){ + // result.response.resultCode = "40300"; + // result.response.resultDescription = result.err; + // } else { + // result.response.resultCode = "50000"; + // result.response.resultDescription = "System error"; + // } + // } + + // if(result.response.resultCode == "40300"){ + // stats.receiveBadRestResponse(service.Name,params.method,cmd); + // } else { + // stats.receiveResponse(service.Name,cmd,"Error"); + // } - } + // } - return result; + return checkResponse(result); }; + async function parallelRequest(multiParams,objectData,funStat) { @@ -488,4 +490,37 @@ function arrayUrl(arrUrl,url,filter,fields,freeSpace,arrData) return arrUrl; } +function checkResponse(result) +{ + if(result.err) + { + if(result.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ + result.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; + // result.response.resultCode = "50003"; + // result.response.resultDescription = "Timeout"; + } else if(result.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ + result.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; + // result.response.resultCode = "50002"; + // result.response.resultDescription = "Reject"; + } else { + + if(result.err.indexOf(constants.RESPONSECONN.STATS.MISSING) != -1){ + result.response.resultCode = constants.RESPONSERESULT.MISSING_INVALID.resultCode; + result.response.resultDescription = result.err; + } else { + result.response = constants.RESPONSECONN.MESSAGE.ERROR; + } + } + + if(result.response.resultCode == constants.RESPONSERESULT.MISSING_INVALID.resultCode){ + stats.receiveBadRestResponse(service.Name,params.method,cmd); + } else { + stats.receiveResponse(service.Name,cmd,constants.ERROR); + } + + } + + return result; +} + module.exports = connection; \ No newline at end of file diff --git a/ais-structure/src/modules/helper/constants.js b/ais-structure/src/modules/helper/constants.js index ba4a805..8fd11be 100644 --- a/ais-structure/src/modules/helper/constants.js +++ b/ais-structure/src/modules/helper/constants.js @@ -1,12 +1,39 @@ module.exports = Object.freeze({ REQUEST: 'Request', RESPONSE: 'Response', + SUCCESS: 'Success', + ERROR: 'Error', METHOD:{ GET : 'GET', POST : 'POST', PUT : 'PUT', DELETE : 'DELETE' }, + RESPONSECONN:{ + STATS:{ + ETIMEDOUT:'ETIMEDOUT', + ECONNREFUSED : 'ECONNREFUSED', + MISSING : 'Missing', + }, + MESSAGE:{ + ETIMEDOUT:{ + resultCode : '50003', + resultDescription : 'Timeout' + }, + ECONNREFUSED:{ + resultCode : '50002', + resultDescription : 'Reject' + }, + ERROR:{ + resultCode : '50000', + resultDescription : 'System error' + }, + SUCCESS:{ + resultCode : '20000', + resultDescription : 'Success' + } + } + }, RESPONSERESULT:{ SUCCESS:{ resultCode : '20000', @@ -27,6 +54,10 @@ module.exports = Object.freeze({ ERROR:{ resultCode : '50000', resultDescription : 'System error' + }, + UNKNOW:{ + resultCode : '40400', + developerMessage : 'Unknown URL' } } }); \ No newline at end of file diff --git a/ais-structure/src/modules/helper/responseMsg.js b/ais-structure/src/modules/helper/responseMsg.js index 6c43780..54d341d 100644 --- a/ais-structure/src/modules/helper/responseMsg.js +++ b/ais-structure/src/modules/helper/responseMsg.js @@ -1,41 +1,47 @@ var stats = require('../helper/stats.js'); +var constants = require('../helper/constants.js'); var responseMsg = []; responseMsg.error = function (req,cmd,code){ - var devMsg = "System error"; - switch(code) { + // var devMsg = "System error"; + var response; + switch(code) { + case 40300: + response = constants.RESPONSERESULT.MISSING_INVALID + break; + case 40401: + response = constants.RESPONSERESULT.DATA_NOT_FOUND + break; + case 40301: + response = constants.RESPONSERESULT.DATA_EXIST + break; case 50000: - devMsg = "System error"; + response = constants.RESPONSERESULT.ERROR; break; - case 40300: - devMsg = "Missing or invalid parameter"; + case 40400: + response = constants.RESPONSERESULT.UNKNOW; break; default: - code = 50000; - devMsg = "System error"; + response = constants.RESPONSERESULT.ERROR; } - var response = { - resultCode : code.toString(), - developerMessage : devMsg - }; - stats.sendResponse(req.method,cmd,"Error"); + stats.sendResponse(req.method,cmd,constants.ERROR); return response; }; responseMsg.success = function (req,cmd,data){ var response = { - resultCode : "20000", - developerMessage : "Success", + resultCode : constants.RESPONSERESULT.SUCCESS.resultCode, + developerMessage : constants.RESPONSERESULT.SUCCESS.resultDescription, resultData : data.resultData, rowCount : data.resultData.length }; - stats.sendResponse(req.method,cmd,"Success"); + stats.sendResponse(req.method,cmd,constants.SUCCESS); return response; }; @@ -48,16 +54,18 @@ responseMsg.direct = function (req,cmd,result,data) - if(result.resultCode == "20000") + if(result.resultCode == constants.RESPONSERESULT.SUCCESS.resultCode) { - stats.sendResponse(req.method,cmd,"Success"); + stats.sendResponse(req.method,cmd,constants.SUCCESS); if(data) response = Object.assign(response,data); } else - stats.sendResponse(req.method,cmd,"Error"); + stats.sendResponse(req.method,cmd,constants.ERROR); return response; }; + + module.exports = responseMsg; \ No newline at end of file -- libgit2 0.21.2