Commit adfdbbeb28f62e7221e0b97be78147e4005ba7d8
Exists in
master
and in
1 other branch
Merge branch 'master' into dev
Showing
1 changed file
with
241 additions
and
109 deletions
Show diff stats
ais-structure/src/modules/helper/connection.js
| @@ -34,20 +34,25 @@ connection.requestSoapToSACF = async function (req,soap,cmd,myMethod) { | @@ -34,20 +34,25 @@ connection.requestSoapToSACF = async function (req,soap,cmd,myMethod) { | ||
| 34 | curRetry : 1 | 34 | curRetry : 1 |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | - var funS = function(){ | ||
| 38 | - stats.sendSACFRequest(service.Name,cmd); | ||
| 39 | - log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,soap); | ||
| 40 | - }; | 37 | + |
| 41 | 38 | ||
| 42 | var funStats = { | 39 | var funStats = { |
| 43 | - start : funS, | ||
| 44 | - error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);} | 40 | + start : function(){ |
| 41 | + stats.sendSACFRequest(service.Name,cmd); | ||
| 42 | + log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,soap); | ||
| 43 | + }, | ||
| 44 | + end : function(){ | ||
| 45 | + // stats.sendSACFRequest(service.Name,cmd); | ||
| 46 | + // log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,soap); | ||
| 47 | + }, | ||
| 48 | + // error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);} | ||
| 45 | }; | 49 | }; |
| 46 | 50 | ||
| 47 | 51 | ||
| 48 | var result = await asyncRequest(params,objectData,funStats); | 52 | var result = await asyncRequest(params,objectData,funStats); |
| 49 | 53 | ||
| 50 | - return checkResponse(result,funStats); | 54 | + // return checkResponse(result,funStats); |
| 55 | + return result; | ||
| 51 | } | 56 | } |
| 52 | catch(err) { | 57 | catch(err) { |
| 53 | log.log(err); | 58 | log.log(err); |
| @@ -88,14 +93,121 @@ connection.requestJsonToD01 = async function (req,obj,cmd,myMethod,filter) { | @@ -88,14 +93,121 @@ connection.requestJsonToD01 = async function (req,obj,cmd,myMethod,filter) { | ||
| 88 | 93 | ||
| 89 | log.log("requestData : "+JSON.stringify(params)) | 94 | log.log("requestData : "+JSON.stringify(params)) |
| 90 | 95 | ||
| 91 | - var funStats = function(){ | ||
| 92 | - stats.sendRestRequest(service.Name,myMethod,cmd); | ||
| 93 | - log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.Request,params,obj); | ||
| 94 | - }; | ||
| 95 | - | ||
| 96 | var funStats = { | 96 | var funStats = { |
| 97 | - start : funStats, | ||
| 98 | - error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);} | 97 | + start : function(){ |
| 98 | + stats.sendRestRequest(service.Name,myMethod,cmd); | ||
| 99 | + log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,obj); | ||
| 100 | + }, | ||
| 101 | + end : function(resultObj){ | ||
| 102 | + | ||
| 103 | + var returnData = {}; | ||
| 104 | + | ||
| 105 | + if(resultObj.err) | ||
| 106 | + { | ||
| 107 | + //connect err => retry | ||
| 108 | + var response = {}; | ||
| 109 | + if(resultObj.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ | ||
| 110 | + response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; | ||
| 111 | + } else if(resultObj.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ | ||
| 112 | + response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; | ||
| 113 | + } else if(resultObj.err.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ | ||
| 114 | + response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.ERROR); | ||
| 118 | + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,response); | ||
| 119 | + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription); | ||
| 120 | + | ||
| 121 | + returnData.retry = true; | ||
| 122 | + }else | ||
| 123 | + { | ||
| 124 | + if(!resultObj.response) | ||
| 125 | + { | ||
| 126 | + //no response data => retry | ||
| 127 | + var response = constants.RESPONSERESULT.ERROR; | ||
| 128 | + stats.receiveBadRestResponse(service.Name,myMethod,cmd); | ||
| 129 | + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,response); | ||
| 130 | + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription); | ||
| 131 | + | ||
| 132 | + returnData.retry = true; | ||
| 133 | + }else | ||
| 134 | + { | ||
| 135 | + try | ||
| 136 | + { | ||
| 137 | + var result = JSON.parse(resultObj.body); | ||
| 138 | + | ||
| 139 | + if(!result.resultCode || !result.resultDescription) | ||
| 140 | + { | ||
| 141 | + //Missing resultCode or resultDescription => retry | ||
| 142 | + log.log("Missing resultCode or resultDescription"); | ||
| 143 | + var response = result; | ||
| 144 | + stats.receiveBadRestResponse(service.Name,myMethod,cmd); | ||
| 145 | + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,response); | ||
| 146 | + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription); | ||
| 147 | + | ||
| 148 | + returnData.retry = true; | ||
| 149 | + returnData.response = response; | ||
| 150 | + returnData.err = constants.RESPONSERESULT.MISSING_INVALID.developerMessage; | ||
| 151 | + | ||
| 152 | + }else | ||
| 153 | + { | ||
| 154 | + //check normal | ||
| 155 | + var response = result; | ||
| 156 | + log.logDetail.addInput(req,service.Name,myMethod+"_"+cmd,constants.RESPONSE,resultObj,result); | ||
| 157 | + if(result.resultCode.startsWith("2")) | ||
| 158 | + { | ||
| 159 | + if(result.resultData && result.resultData.length>0) | ||
| 160 | + { | ||
| 161 | + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.SUCCESS); | ||
| 162 | + log.addSuccessSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,constants.SUCCESS); | ||
| 163 | + }else | ||
| 164 | + { | ||
| 165 | + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.RESPONSERESULT.DATA_NOT_FOUND.developerMessage); | ||
| 166 | + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,constants.RESPONSERESULT.DATA_NOT_FOUND.resultCode,constants.RESPONSERESULT.DATA_NOT_FOUND.developerMessage); | ||
| 167 | + } | ||
| 168 | + | ||
| 169 | + returnData.retry = false; | ||
| 170 | + returnData.response = response; | ||
| 171 | + returnData.err = response.resultDescription; | ||
| 172 | + } else if(result.resultCode.startsWith("404")){ | ||
| 173 | + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.RESPONSERESULT.DATA_NOT_FOUND.developerMessage); | ||
| 174 | + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,result.developerMessage); | ||
| 175 | + | ||
| 176 | + returnData.retry = false; | ||
| 177 | + returnData.response = response; | ||
| 178 | + returnData.err = response.resultDescription; | ||
| 179 | + } else if(result.resultCode.startsWith("5")){ | ||
| 180 | + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.ERROR); | ||
| 181 | + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,result.developerMessage); | ||
| 182 | + //retry | ||
| 183 | + | ||
| 184 | + returnData.retry = true; | ||
| 185 | + returnData.response = response; | ||
| 186 | + returnData.err = response.resultDescription; | ||
| 187 | + } else { | ||
| 188 | + stats.receiveRestResponse(service.Name,myMethod,cmd,constants.ERROR); | ||
| 189 | + log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,result.resultCode,result.developerMessage); | ||
| 190 | + //retry | ||
| 191 | + | ||
| 192 | + returnData.retry = true; | ||
| 193 | + returnData.response = response; | ||
| 194 | + returnData.err = response.resultDescription; | ||
| 195 | + } | ||
| 196 | + } | ||
| 197 | + }catch(err) { | ||
| 198 | + | ||
| 199 | + // returnData.response = constants.RESPONSERESULT.ERROR; | ||
| 200 | + returnData.err = constants.RESPONSERESULT.ERROR; | ||
| 201 | + returnData.retry = true; | ||
| 202 | + | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + } | ||
| 206 | + } | ||
| 207 | + | ||
| 208 | + return returnData; | ||
| 209 | + | ||
| 210 | + } | ||
| 99 | }; | 211 | }; |
| 100 | 212 | ||
| 101 | 213 | ||
| @@ -171,58 +283,64 @@ connection.requestJsonToD01 = async function (req,obj,cmd,myMethod,filter) { | @@ -171,58 +283,64 @@ connection.requestJsonToD01 = async function (req,obj,cmd,myMethod,filter) { | ||
| 171 | params.url = genUrl[0]; | 283 | params.url = genUrl[0]; |
| 172 | delete params.body; | 284 | delete params.body; |
| 173 | 285 | ||
| 174 | - var resultRes = await asyncRequest(params,objectData,funStats); | 286 | + result = await asyncRequest(params,objectData,funStats); |
| 287 | + // var resultRes = await asyncRequest(params,objectData,funStats); | ||
| 175 | 288 | ||
| 176 | - // console.log(resultRes); | ||
| 177 | - if(resultRes.response) | ||
| 178 | - { | ||
| 179 | - var data = JSON.parse(resultRes.response.body); | ||
| 180 | - result.response = data; | 289 | + // // console.log(resultRes); |
| 290 | + // if(resultRes.response) | ||
| 291 | + // { | ||
| 292 | + // var data = JSON.parse(resultRes.response.body); | ||
| 293 | + // result.response = data; | ||
| 181 | 294 | ||
| 182 | - } else { | ||
| 183 | - result = resultRes; | ||
| 184 | - } | 295 | + // } else { |
| 296 | + // result = resultRes; | ||
| 297 | + // } | ||
| 185 | } | 298 | } |
| 186 | 299 | ||
| 187 | 300 | ||
| 188 | } else if(params.method == constants.METHOD.POST) { | 301 | } else if(params.method == constants.METHOD.POST) { |
| 189 | 302 | ||
| 190 | params.body = JSON.stringify(params.body); | 303 | params.body = JSON.stringify(params.body); |
| 191 | - | ||
| 192 | - var resultRes = await asyncRequest(params,objectData,funStats); | ||
| 193 | - | ||
| 194 | - if(resultRes.response){ | ||
| 195 | - result.response = JSON.parse(resultRes.body); | ||
| 196 | - } else { | ||
| 197 | - result = resultRes; | ||
| 198 | - } | 304 | + result = await asyncRequest(params,objectData,funStats); |
| 305 | + // var resultRes = await asyncRequest(params,objectData,funStats); | ||
| 306 | + | ||
| 307 | + // if(resultRes.response){ | ||
| 308 | + // result.response = JSON.parse(resultRes.body); | ||
| 309 | + // } else { | ||
| 310 | + // result = resultRes; | ||
| 311 | + // } | ||
| 199 | } else if(params.method == constants.METHOD.PUT) { | 312 | } else if(params.method == constants.METHOD.PUT) { |
| 200 | 313 | ||
| 201 | params.url = getUrlFilter(params.url,filter); | 314 | params.url = getUrlFilter(params.url,filter); |
| 202 | 315 | ||
| 203 | params.body = JSON.stringify(params.body); | 316 | params.body = JSON.stringify(params.body); |
| 204 | 317 | ||
| 205 | - var resultRes = await asyncRequest(params,objectData,funStats); | 318 | + |
| 319 | + result = await asyncRequest(params,objectData,funStats); | ||
| 320 | + | ||
| 321 | + // var resultRes = await asyncRequest(params,objectData,funStats); | ||
| 206 | 322 | ||
| 207 | - if(resultRes.response){ | ||
| 208 | - result.response = JSON.parse(resultRes.body); | ||
| 209 | - } else { | ||
| 210 | - result = resultRes; | ||
| 211 | - } | 323 | + // if(resultRes.response){ |
| 324 | + // result.response = JSON.parse(resultRes.body); | ||
| 325 | + // } else { | ||
| 326 | + // result = resultRes; | ||
| 327 | + // } | ||
| 212 | } | 328 | } |
| 213 | 329 | ||
| 214 | - // console.log(result); | 330 | + console.log(result); |
| 215 | 331 | ||
| 216 | - if(result.response) | ||
| 217 | - { | ||
| 218 | - if(!result.response.resultCode){ | ||
| 219 | - result.err = "Missing resultCode"; | ||
| 220 | - } else if(!result.response.resultDescription){ | ||
| 221 | - result.err = "Missing resultDescription"; | ||
| 222 | - } | ||
| 223 | - } | 332 | + // if(result.response) |
| 333 | + // { | ||
| 334 | + // if(!result.response.resultCode){ | ||
| 335 | + // result.err = "Missing resultCode"; | ||
| 336 | + // } else if(!result.response.resultDescription){ | ||
| 337 | + // result.err = "Missing resultDescription"; | ||
| 338 | + // } | ||
| 339 | + // } | ||
| 224 | 340 | ||
| 225 | - return checkResponse(result,funStats); | 341 | + // return checkResponse(result,funStats); |
| 342 | + | ||
| 343 | + return result; | ||
| 226 | 344 | ||
| 227 | } | 345 | } |
| 228 | catch(err) { | 346 | catch(err) { |
| @@ -277,43 +395,61 @@ function asyncRequest (params = {},objectData,funStat) { | @@ -277,43 +395,61 @@ function asyncRequest (params = {},objectData,funStat) { | ||
| 277 | 395 | ||
| 278 | if (error) { | 396 | if (error) { |
| 279 | 397 | ||
| 280 | - if( objectData.maxRetry == objectData.curRetry-1) | ||
| 281 | - { | ||
| 282 | - resolve({ | ||
| 283 | - 'body' : body, | ||
| 284 | - 'err' : error | ||
| 285 | - }); | ||
| 286 | - }else | ||
| 287 | - { | ||
| 288 | - var errRes = {}; | ||
| 289 | - log.log(error,'error'); | ||
| 290 | - if(error.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ | ||
| 291 | - errRes.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; | ||
| 292 | - } else if(error.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ | ||
| 293 | - errRes.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; | ||
| 294 | - } else if(error.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ | ||
| 295 | - errRes.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; | ||
| 296 | - } else { | ||
| 297 | - errRes.response = constants.RESPONSECONN.MESSAGE.ERROR; | ||
| 298 | - } | ||
| 299 | - | ||
| 300 | - // console.log("retry "+objectData.curRetry); | ||
| 301 | - funStat.error(errRes); | ||
| 302 | - objectData.curRetry++; | ||
| 303 | - resolve(asyncRequest(params,objectData,funStat)); | ||
| 304 | - } | 398 | + // if(objectData.maxRetry == objectData.curRetry-1) |
| 399 | + // { | ||
| 400 | + | ||
| 401 | + // resolve({ | ||
| 402 | + // 'body' : body, | ||
| 403 | + // 'err' : error | ||
| 404 | + // }); | ||
| 405 | + // }else | ||
| 406 | + // { | ||
| 407 | + // var responseObj = { | ||
| 408 | + // 'body' : body, | ||
| 409 | + // 'err' : error | ||
| 410 | + // }; | ||
| 411 | + | ||
| 412 | + | ||
| 413 | + // if(funStat.end(responseObj)) | ||
| 414 | + // { | ||
| 415 | + // objectData.curRetry++; | ||
| 416 | + // resolve(asyncRequest(params,objectData,funStat)); | ||
| 417 | + // } | ||
| 418 | + | ||
| 419 | + // } | ||
| 305 | 420 | ||
| 306 | 421 | ||
| 307 | 422 | ||
| 308 | - } else { | ||
| 309 | - | ||
| 310 | - // stats.receiveResponse(node,cmd,"Success"); | ||
| 311 | - log.log("Response : "+body); | ||
| 312 | - resolve({ | ||
| 313 | - 'body' : body, | ||
| 314 | - 'response' : response | ||
| 315 | - }); | 423 | + } else { |
| 424 | + | ||
| 425 | + | ||
| 426 | + // var responseObj = { | ||
| 427 | + // 'body' : body, | ||
| 428 | + // 'response' : response | ||
| 429 | + // }; | ||
| 430 | + // resolve(funStat.end(responseObj)); | ||
| 316 | } | 431 | } |
| 432 | + | ||
| 433 | + var responseObj = { | ||
| 434 | + 'body' : body, | ||
| 435 | + 'response' : response, | ||
| 436 | + 'err' : error | ||
| 437 | + }; | ||
| 438 | + var result = funStat.end(responseObj); | ||
| 439 | + | ||
| 440 | + if(result.retry) | ||
| 441 | + { | ||
| 442 | + if(objectData.maxRetry == objectData.curRetry-1) | ||
| 443 | + resolve(result); | ||
| 444 | + else | ||
| 445 | + { | ||
| 446 | + objectData.curRetry++; | ||
| 447 | + resolve(asyncRequest(params,objectData,funStat)); | ||
| 448 | + } | ||
| 449 | + | ||
| 450 | + }else | ||
| 451 | + resolve(result); | ||
| 452 | + | ||
| 317 | }); | 453 | }); |
| 318 | }); | 454 | }); |
| 319 | }; | 455 | }; |
| @@ -537,34 +673,30 @@ function arrayUrl(arrUrl,url,filter,fields,freeSpace,arrData) | @@ -537,34 +673,30 @@ function arrayUrl(arrUrl,url,filter,fields,freeSpace,arrData) | ||
| 537 | return arrUrl; | 673 | return arrUrl; |
| 538 | } | 674 | } |
| 539 | 675 | ||
| 540 | -function checkResponse(result,funStats) | ||
| 541 | -{ | ||
| 542 | - if(result.err) | ||
| 543 | - { | ||
| 544 | - log.log("Final Response : "+result.err,'error'); | ||
| 545 | - if(result.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ | ||
| 546 | - result.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; | ||
| 547 | - // result.response.resultCode = "50003"; | ||
| 548 | - // result.response.resultDescription = "Timeout"; | ||
| 549 | - } else if(result.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ | ||
| 550 | - result.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; | ||
| 551 | - // result.response.resultCode = "50002"; | ||
| 552 | - // result.response.resultDescription = "Reject"; | ||
| 553 | - } else if(result.err.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ | ||
| 554 | - result.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; | ||
| 555 | - } else { | ||
| 556 | - if(result.err.resultDescription && result.err.resultDescription.indexOf(constants.RESPONSECONN.STATS.MISSING) != -1){ | ||
| 557 | - result.response.resultCode = constants.RESPONSERESULT.MISSING_INVALID.resultCode; | ||
| 558 | - result.response.resultDescription = result.err; | ||
| 559 | - } else { | ||
| 560 | - result.response = constants.RESPONSECONN.MESSAGE.ERROR; | ||
| 561 | - } | ||
| 562 | - } | ||
| 563 | - funStats.error(result.response) | ||
| 564 | - }else | ||
| 565 | - log.log("Final Response : "+JSON.stringify(result)); | ||
| 566 | - | ||
| 567 | - return result; | ||
| 568 | -} | 676 | +// function checkResponse(result,funStats) |
| 677 | +// { | ||
| 678 | +// if(result.err) | ||
| 679 | +// { | ||
| 680 | +// log.log("Final Response : "+result.err,'error'); | ||
| 681 | +// if(result.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){ | ||
| 682 | +// result.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT; | ||
| 683 | +// } else if(result.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){ | ||
| 684 | +// result.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED; | ||
| 685 | +// } else if(result.err.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){ | ||
| 686 | +// result.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT; | ||
| 687 | +// } else { | ||
| 688 | +// if(result.err.resultDescription && result.err.resultDescription.indexOf(constants.RESPONSECONN.STATS.MISSING) != -1){ | ||
| 689 | +// result.response.resultCode = constants.RESPONSERESULT.MISSING_INVALID.resultCode; | ||
| 690 | +// result.response.resultDescription = result.err; | ||
| 691 | +// } else { | ||
| 692 | +// result.response = constants.RESPONSECONN.MESSAGE.ERROR; | ||
| 693 | +// } | ||
| 694 | +// } | ||
| 695 | +// funStats.error(result.response) | ||
| 696 | +// }else | ||
| 697 | +// log.log("Final Response : "+JSON.stringify(result)); | ||
| 698 | + | ||
| 699 | +// return result; | ||
| 700 | +// } | ||
| 569 | 701 | ||
| 570 | module.exports = connection; | 702 | module.exports = connection; |
| 571 | \ No newline at end of file | 703 | \ No newline at end of file |