From 72409a481d3eb1c248b2a984ef26f41acfd4af31 Mon Sep 17 00:00:00 2001 From: Sumate Kongpui Date: Mon, 3 Sep 2018 16:09:24 +0700 Subject: [PATCH] update log --- ais-structure/src/modules/helper/connection.js | 350 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------- 1 file changed, 241 insertions(+), 109 deletions(-) diff --git a/ais-structure/src/modules/helper/connection.js b/ais-structure/src/modules/helper/connection.js index b5f9b65..dfb7608 100644 --- a/ais-structure/src/modules/helper/connection.js +++ b/ais-structure/src/modules/helper/connection.js @@ -34,20 +34,25 @@ connection.requestSoapToSACF = async function (req,soap,cmd,myMethod) { curRetry : 1 } - var funS = function(){ - stats.sendSACFRequest(service.Name,cmd); - log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,soap); - }; + var funStats = { - start : funS, - error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);} + start : function(){ + stats.sendSACFRequest(service.Name,cmd); + log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,soap); + }, + end : function(){ + // stats.sendSACFRequest(service.Name,cmd); + // log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,soap); + }, + // error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);} }; var result = await asyncRequest(params,objectData,funStats); - return checkResponse(result,funStats); + // return checkResponse(result,funStats); + return result; } catch(err) { log.log(err); @@ -88,14 +93,121 @@ connection.requestJsonToD01 = async function (req,obj,cmd,myMethod,filter) { log.log("requestData : "+JSON.stringify(params)) - var funStats = function(){ - stats.sendRestRequest(service.Name,myMethod,cmd); - log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.Request,params,obj); - }; - var funStats = { - start : funStats, - error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);} + start : function(){ + stats.sendRestRequest(service.Name,myMethod,cmd); + log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,obj); + }, + end : function(resultObj){ + + var returnData = {}; + + if(resultObj.err) + { + //connect err => retry + var response = {}; + if(resultObj.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ + response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; + } else if(resultObj.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ + response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; + } else if(resultObj.err.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ + response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; + } + + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.ERROR); + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,response); + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription); + + returnData.retry = true; + }else + { + if(!resultObj.response) + { + //no response data => retry + var response = constants.RESPONSERESULT.ERROR; + stats.receiveBadRestResponse(service.Name,myMethod,cmd); + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,response); + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription); + + returnData.retry = true; + }else + { + try + { + var result = JSON.parse(resultObj.body); + + if(!result.resultCode || !result.resultDescription) + { + //Missing resultCode or resultDescription => retry + log.log("Missing resultCode or resultDescription"); + var response = result; + stats.receiveBadRestResponse(service.Name,myMethod,cmd); + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,response); + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription); + + returnData.retry = true; + returnData.response = response; + returnData.err = constants.RESPONSERESULT.MISSING_INVALID.developerMessage; + + }else + { + //check normal + var response = result; + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,result); + if(result.resultCode.startsWith("2")) + { + if(result.resultData && result.resultData.length>0) + { + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.SUCCESS); + log.addSuccessSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,constants.SUCCESS); + }else + { + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.RESPONSERESULT.DATA_NOT_FOUND.developerMessage); + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,constants.RESPONSERESULT.DATA_NOT_FOUND.resultCode,constants.RESPONSERESULT.DATA_NOT_FOUND.developerMessage); + } + + returnData.retry = false; + returnData.response = response; + returnData.err = response.resultDescription; + } else if(result.resultCode.startsWith("404")){ + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.RESPONSERESULT.DATA_NOT_FOUND.developerMessage); + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,result.developerMessage); + + returnData.retry = false; + returnData.response = response; + returnData.err = response.resultDescription; + } else if(result.resultCode.startsWith("5")){ + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.ERROR); + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,result.developerMessage); + //retry + + returnData.retry = true; + returnData.response = response; + returnData.err = response.resultDescription; + } else { + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.ERROR); + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,result.developerMessage); + //retry + + returnData.retry = true; + returnData.response = response; + returnData.err = response.resultDescription; + } + } + }catch(err) { + + // returnData.response = constants.RESPONSERESULT.ERROR; + returnData.err = constants.RESPONSERESULT.ERROR; + returnData.retry = true; + + } + + } + } + + return returnData; + + } }; @@ -171,58 +283,64 @@ connection.requestJsonToD01 = async function (req,obj,cmd,myMethod,filter) { params.url = genUrl[0]; delete params.body; - var resultRes = await asyncRequest(params,objectData,funStats); + result = await asyncRequest(params,objectData,funStats); + // var resultRes = await asyncRequest(params,objectData,funStats); - // console.log(resultRes); - if(resultRes.response) - { - var data = JSON.parse(resultRes.response.body); - result.response = data; + // // console.log(resultRes); + // if(resultRes.response) + // { + // var data = JSON.parse(resultRes.response.body); + // result.response = data; - } else { - result = resultRes; - } + // } else { + // result = resultRes; + // } } } else if(params.method == constants.METHOD.POST) { params.body = JSON.stringify(params.body); - - var resultRes = await asyncRequest(params,objectData,funStats); - - if(resultRes.response){ - result.response = JSON.parse(resultRes.body); - } else { - result = resultRes; - } + result = await asyncRequest(params,objectData,funStats); + // var resultRes = await asyncRequest(params,objectData,funStats); + + // if(resultRes.response){ + // result.response = JSON.parse(resultRes.body); + // } else { + // result = resultRes; + // } } else if(params.method == constants.METHOD.PUT) { params.url = getUrlFilter(params.url,filter); params.body = JSON.stringify(params.body); - var resultRes = await asyncRequest(params,objectData,funStats); + + result = await asyncRequest(params,objectData,funStats); + + // var resultRes = await asyncRequest(params,objectData,funStats); - if(resultRes.response){ - result.response = JSON.parse(resultRes.body); - } else { - result = resultRes; - } + // if(resultRes.response){ + // result.response = JSON.parse(resultRes.body); + // } else { + // result = resultRes; + // } } - // console.log(result); + console.log(result); - if(result.response) - { - if(!result.response.resultCode){ - result.err = "Missing resultCode"; - } else if(!result.response.resultDescription){ - result.err = "Missing resultDescription"; - } - } + // if(result.response) + // { + // if(!result.response.resultCode){ + // result.err = "Missing resultCode"; + // } else if(!result.response.resultDescription){ + // result.err = "Missing resultDescription"; + // } + // } - return checkResponse(result,funStats); + // return checkResponse(result,funStats); + + return result; } catch(err) { @@ -277,43 +395,61 @@ function asyncRequest (params = {},objectData,funStat) { if (error) { - if( objectData.maxRetry == objectData.curRetry-1) - { - resolve({ - 'body' : body, - 'err' : error - }); - }else - { - var errRes = {}; - log.log(error,'error'); - if(error.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ - errRes.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; - } else if(error.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ - errRes.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; - } else if(error.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ - errRes.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; - } else { - errRes.response = constants.RESPONSECONN.MESSAGE.ERROR; - } - - // console.log("retry "+objectData.curRetry); - funStat.error(errRes); - objectData.curRetry++; - resolve(asyncRequest(params,objectData,funStat)); - } + // if(objectData.maxRetry == objectData.curRetry-1) + // { + + // resolve({ + // 'body' : body, + // 'err' : error + // }); + // }else + // { + // var responseObj = { + // 'body' : body, + // 'err' : error + // }; + + + // if(funStat.end(responseObj)) + // { + // objectData.curRetry++; + // resolve(asyncRequest(params,objectData,funStat)); + // } + + // } - } else { - - // stats.receiveResponse(node,cmd,"Success"); - log.log("Response : "+body); - resolve({ - 'body' : body, - 'response' : response - }); + } else { + + + // var responseObj = { + // 'body' : body, + // 'response' : response + // }; + // resolve(funStat.end(responseObj)); } + + var responseObj = { + 'body' : body, + 'response' : response, + 'err' : error + }; + var result = funStat.end(responseObj); + + if(result.retry) + { + if(objectData.maxRetry == objectData.curRetry-1) + resolve(result); + else + { + objectData.curRetry++; + resolve(asyncRequest(params,objectData,funStat)); + } + + }else + resolve(result); + }); }); }; @@ -537,34 +673,30 @@ function arrayUrl(arrUrl,url,filter,fields,freeSpace,arrData) return arrUrl; } -function checkResponse(result,funStats) -{ - if(result.err) - { - log.log("Final Response : "+result.err,'error'); - 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.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ - result.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; - } else { - if(result.err.resultDescription && result.err.resultDescription.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; - } - } - funStats.error(result.response) - }else - log.log("Final Response : "+JSON.stringify(result)); - - return result; -} +// function checkResponse(result,funStats) +// { +// if(result.err) +// { +// log.log("Final Response : "+result.err,'error'); +// if(result.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ +// result.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; +// } else if(result.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ +// result.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; +// } else if(result.err.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ +// result.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; +// } else { +// if(result.err.resultDescription && result.err.resultDescription.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; +// } +// } +// funStats.error(result.response) +// }else +// log.log("Final Response : "+JSON.stringify(result)); + +// return result; +// } module.exports = connection; \ No newline at end of file -- libgit2 0.21.2