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 |