Commit dc7544b9d9a836cb461f89fd864d3869dfa69b51
1 parent
800050a695
Exists in
master
penanganan error
Showing 1 changed file with 28 additions and 5 deletions Side-by-side Diff
xmlout.js
... | ... | @@ -16,7 +16,17 @@ var taskHistory = LRU({max: 500, maxAge: 1000 * 3600 * 2}); |
16 | 16 | |
17 | 17 | process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; |
18 | 18 | |
19 | -function callbackReport(requestId, responseCode, message, dontResendDelay) { | |
19 | +function callbackReport(requestId, responseCode, message, dontResendDelay, raw) { | |
20 | + var responseToSave = { | |
21 | + parsed: { | |
22 | + MESSAGE: message, | |
23 | + } | |
24 | + }; | |
25 | + | |
26 | + if (raw) { | |
27 | + responseToSave.raw = raw; | |
28 | + } | |
29 | + | |
20 | 30 | if (responseCode != '68' || dontResendDelay) { |
21 | 31 | resendDelay.cancel(requestId); |
22 | 32 | } else { |
... | ... | @@ -28,7 +38,7 @@ function callbackReport(requestId, responseCode, message, dontResendDelay) { |
28 | 38 | }); |
29 | 39 | } |
30 | 40 | |
31 | - _callbackReport(requestId, responseCode, message); | |
41 | + _callbackReport(requestId, responseCode, message, null, responseToSave); | |
32 | 42 | } |
33 | 43 | |
34 | 44 | function createRedisClient(host, port) { |
... | ... | @@ -59,7 +69,7 @@ function topupRequest(task) { |
59 | 69 | }); |
60 | 70 | } |
61 | 71 | |
62 | -function _topupRequest(task) { | |
72 | +function _topupRequest(task, pendingOnConnectError) { | |
63 | 73 | |
64 | 74 | if (!aaa.isTodayTrx(task)) { |
65 | 75 | callbackReport(task.requestId, '68', 'Terdeteksi transaksi beda hari, batal kirim ke supplier. Silahkan cek webreport', true); |
... | ... | @@ -94,11 +104,18 @@ function _topupRequest(task) { |
94 | 104 | client.methodCall(methodName, [ params ], function (error, value) { |
95 | 105 | |
96 | 106 | // Results of the method response |
97 | - if (error && (error.code == 'ECONNREFUSED' || error.code == 'EHOSTUNREACH')) { | |
107 | + if (error && !pendingOnConnectError && (error.code == 'ECONNREFUSED' || error.code == 'EHOSTUNREACH')) { | |
98 | 108 | |
99 | - logger.warn('XMLRPC Client Error', {requestId: task['requestId'], err: error}); | |
109 | + logger.warn('XMLRPC Client Error on connecting', {requestId: task['requestId'], err: error}); | |
100 | 110 | callbackReport(task['requestId'], '91', 'Gangguan koneksi ke suplier: ' + error); |
101 | 111 | return; |
112 | + | |
113 | + } else if (error) { | |
114 | + | |
115 | + logger.warn('XMLRPC Client Error', {requestId: task['requestId'], err: error}); | |
116 | + callbackReport(task['requestId'], '68', 'XMLRPC Client Error: ' + error); | |
117 | + return; | |
118 | + | |
102 | 119 | } |
103 | 120 | |
104 | 121 | logger.info('Got XMLRPC response from partner for', {response_method: methodName, response_message: value}); |
... | ... | @@ -193,6 +210,12 @@ function updateBalance(message) { |
193 | 210 | } |
194 | 211 | |
195 | 212 | function checkStatus(task) { |
213 | + | |
214 | + if (Number(config.globals.topup_request_on_check_status)) { | |
215 | + _topupRequest(task, true); | |
216 | + return; | |
217 | + } | |
218 | + | |
196 | 219 | var partnerUrl = url.parse(config.h2h_out.partner); |
197 | 220 | var clientOptions = { |
198 | 221 | host: partnerUrl.hostname |