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 | 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 | 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 | 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 | 57 | catch(err) { |
53 | 58 | log.log(err); |
... | ... | @@ -88,14 +93,121 @@ connection.requestJsonToD01 = async function (req,obj,cmd,myMethod,filter) { |
88 | 93 | |
89 | 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 | 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 | 283 | params.url = genUrl[0]; |
172 | 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 | 301 | } else if(params.method == constants.METHOD.POST) { |
189 | 302 | |
190 | 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 | 312 | } else if(params.method == constants.METHOD.PUT) { |
200 | 313 | |
201 | 314 | params.url = getUrlFilter(params.url,filter); |
202 | 315 | |
203 | 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 | 346 | catch(err) { |
... | ... | @@ -277,43 +395,61 @@ function asyncRequest (params = {},objectData,funStat) { |
277 | 395 | |
278 | 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 | 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 | 702 | module.exports = connection; |
571 | 703 | \ No newline at end of file | ... | ... |