Commit 7ab18825f17eef9567c9173b011151e17e09d8f7

Authored by Adhidarma Hadiwinoto
1 parent 75e0f7eb82
Exists in master

_reportToCore jadi reportToCore

Showing 1 changed file with 3 additions and 3 deletions Inline Diff

1 "use strict"; 1 "use strict";
2 2
3 const request = require('request'); 3 const request = require('request');
4 const config = require('komodo-sdk/config'); 4 const config = require('komodo-sdk/config');
5 const logger = require('komodo-sdk/logger'); 5 const logger = require('komodo-sdk/logger');
6 const matrix = require('komodo-sdk/matrix'); 6 const matrix = require('komodo-sdk/matrix');
7 const pull = require('komodo-sdk/gateway/pull'); 7 const pull = require('komodo-sdk/gateway/pull');
8 8
9 const misc = require('./partner-misc'); 9 const misc = require('./partner-misc');
10 10
11 /** 11 /**
12 * Pembelian ke partner 12 * Pembelian ke partner
13 * 13 *
14 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway. 14 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway.
15 */ 15 */
16 function buy(task) { 16 function buy(task) {
17 _requestToPartner(task, false); 17 _requestToPartner(task, false);
18 } 18 }
19 19
20 /** 20 /**
21 * Pemeriksaan status transaksi ke partner 21 * Pemeriksaan status transaksi ke partner
22 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway. 22 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway.
23 */ 23 */
24 function statusCheck(task) { 24 function statusCheck(task) {
25 _requestToPartner(task, true); 25 _requestToPartner(task, true);
26 } 26 }
27 27
28 /** 28 /**
29 * Mengirim request ke partner. 29 * Mengirim request ke partner.
30 * 30 *
31 * Untuk digunakan oleh buy dan checkStatus. 31 * Untuk digunakan oleh buy dan checkStatus.
32 */ 32 */
33 function _requestToPartner(task, pendingOnError) { 33 function _requestToPartner(task, pendingOnError) {
34 34
35 const requestOptions = misc.createRequestOptions(task, config); 35 const requestOptions = misc.createRequestOptions(task, config);
36 36
37 logger.verbose('Requeting to partner', {requestOptions: requestOptions}); 37 logger.verbose('Requeting to partner', {requestOptions: requestOptions});
38 request.post(requestOptions, function(err, res, body) { 38 request.post(requestOptions, function(err, res, body) {
39 39
40 if (err) { 40 if (err) {
41 41
42 let rc = '68'; 42 let rc = '68';
43 if (!pendingOnError) { rc = '91'; } 43 if (!pendingOnError) { rc = '91'; }
44 44
45 logger.warn('Error requesting to partner', {task: task, err: err}) 45 logger.warn('Error requesting to partner', {task: task, err: err})
46 46
47 _reportToCore({ 47 reportToCore({
48 trx_id: task.trx_id, 48 trx_id: task.trx_id,
49 rc: rc, 49 rc: rc,
50 message: 'Error requesting to partner: ' + err, 50 message: 'Error requesting to partner: ' + err,
51 handler: config.handler_name, 51 handler: config.handler_name,
52 task: task 52 task: task
53 }) 53 })
54 54
55 return; 55 return;
56 } 56 }
57 57
58 if (res.statusCode != 200) { 58 if (res.statusCode != 200) {
59 let rc = '68'; 59 let rc = '68';
60 logger.warn('Partner returning non 200 HTTP STATUS CODE', {task: task, http_status_code: res.statusCode}) 60 logger.warn('Partner returning non 200 HTTP STATUS CODE', {task: task, http_status_code: res.statusCode})
61 61
62 _reportToCore({ 62 reportToCore({
63 trx_id: task.trx_id, 63 trx_id: task.trx_id,
64 rc: rc, 64 rc: rc,
65 message: 'Partner returning HTTP STATUS CODE ' + res.statusCode + ' instead of 200', 65 message: 'Partner returning HTTP STATUS CODE ' + res.statusCode + ' instead of 200',
66 handler: config.handler_name, 66 handler: config.handler_name,
67 task: task 67 task: task
68 }) 68 })
69 69
70 return; 70 return;
71 } 71 }
72 72
73 misc.processPartnerResponseBody(body, task); 73 misc.processPartnerResponseBody(body, task);
74 }) 74 })
75 } 75 }
76 76
77 /** 77 /**
78 * Mengirim report hasil transaksi ke CORE 78 * Mengirim report hasil transaksi ke CORE
79 */ 79 */
80 function reportToCore(data) { 80 function reportToCore(data) {
81 pull.report(data); 81 pull.report(data);
82 82
83 if (data && data.task && data.rc == '68') { 83 if (data && data.task && data.rc == '68') {
84 let delay_ms = 60 * 1000; 84 let delay_ms = 60 * 1000;
85 if (config.auto_resend && config.auto_resend.delay_ms) { 85 if (config.auto_resend && config.auto_resend.delay_ms) {
86 delay_ms = Number(config.auto_resend.delay_ms); 86 delay_ms = Number(config.auto_resend.delay_ms);
87 } 87 }
88 88
89 let max_retry = 60; 89 let max_retry = 60;
90 if (config.auto_resend && config.auto_resend.max_retry) { 90 if (config.auto_resend && config.auto_resend.max_retry) {
91 max_retry = Number(config.auto_resend.max_retry); 91 max_retry = Number(config.auto_resend.max_retry);
92 } 92 }
93 93
94 setTimeout( 94 setTimeout(
95 function() { 95 function() {
96 96
97 if (data.task.remaining_retry === undefined) { 97 if (data.task.remaining_retry === undefined) {
98 data.task.remaining_retry = max_retry; 98 data.task.remaining_retry = max_retry;
99 } 99 }
100 100
101 if (data.task.remaining_retry--) { 101 if (data.task.remaining_retry--) {
102 logger.verbose('Got pending status, retrying', {task: data.task}); 102 logger.verbose('Got pending status, retrying', {task: data.task});
103 statusCheck(data.task); 103 statusCheck(data.task);
104 } 104 }
105 else { 105 else {
106 logger.verbose('Exceeding retry pending status', {task: data.task}); 106 logger.verbose('Exceeding retry pending status', {task: data.task});
107 } 107 }
108 }, 108 },
109 delay_ms 109 delay_ms
110 ) 110 )
111 } 111 }
112 } 112 }
113 113
114 exports.buy = buy; 114 exports.buy = buy;
115 exports.statusCheck = statusCheck; 115 exports.statusCheck = statusCheck;
116 exports.reportToCore = reportToCore; 116 exports.reportToCore = reportToCore;
117 117