Commit dc7544b9d9a836cb461f89fd864d3869dfa69b51

Authored by Adhidarma Hadiwinoto
1 parent 800050a695
Exists in master

penanganan error

Showing 1 changed file with 28 additions and 5 deletions Side-by-side Diff

... ... @@ -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