Commit 879f58afcc5e6824af46b86a98f17d3c3d21e97f

Authored by Adhidarma Hadiwinoto
1 parent 45f8679813
Exists in master

require request

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

1 "use strict"; 1 "use strict";
2 2
3 const request = require('request');
3 const config = require('komodo-sdk/config'); 4 const config = require('komodo-sdk/config');
4 const logger = require('komodo-sdk/logger'); 5 const logger = require('komodo-sdk/logger');
5 const matrix = require('komodo-sdk/matrix'); 6 const matrix = require('komodo-sdk/matrix');
6 const pull = require('komodo-sdk/gateway/pull'); 7 const pull = require('komodo-sdk/gateway/pull');
7 8
8 const misc = require('./partner-misc'); 9 const misc = require('./partner-misc');
9 10
10 /** 11 /**
11 * Pembelian ke partner 12 * Pembelian ke partner
12 * 13 *
13 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway. 14 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway.
14 */ 15 */
15 function buy(task) { 16 function buy(task) {
16 _requestToPartner(task, false); 17 _requestToPartner(task, false);
17 } 18 }
18 19
19 /** 20 /**
20 * Pemeriksaan status transaksi ke partner 21 * Pemeriksaan status transaksi ke partner
21 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway. 22 * Merupakan fungsi mandatory yang harus dimiliki oleh setiap gateway.
22 */ 23 */
23 function statusCheck(task) { 24 function statusCheck(task) {
24 _requestToPartner(task, true); 25 _requestToPartner(task, true);
25 } 26 }
26 27
27 /** 28 /**
28 * Mengirim request ke partner. 29 * Mengirim request ke partner.
29 * 30 *
30 * Untuk digunakan oleh buy dan checkStatus. 31 * Untuk digunakan oleh buy dan checkStatus.
31 */ 32 */
32 function _requestToPartner(task, pendingOnError) { 33 function _requestToPartner(task, pendingOnError) {
33 34
34 const requestOptions = misc.createRequestOptions(task, config); 35 const requestOptions = misc.createRequestOptions(task, config);
35 36
36 logger.verbose('Requeting to partner', {requestOptions: requestOptions}); 37 logger.verbose('Requeting to partner', {requestOptions: requestOptions});
37 request.post(requestOptions, function(err, res, body) { 38 request.post(requestOptions, function(err, res, body) {
38 39
39 if (err) { 40 if (err) {
40 41
41 let rc = '68'; 42 let rc = '68';
42 if (!pendingOnError) { rc = '91'; } 43 if (!pendingOnError) { rc = '91'; }
43 44
44 logger.warn('Error requesting to partner', {task: task, err: err}) 45 logger.warn('Error requesting to partner', {task: task, err: err})
45 46
46 _reportToCore({ 47 _reportToCore({
47 trx_id: task.trx_id, 48 trx_id: task.trx_id,
48 rc: rc, 49 rc: rc,
49 message: 'Error requesting to partner: ' + err, 50 message: 'Error requesting to partner: ' + err,
50 handler: config.handler_name 51 handler: config.handler_name
51 }) 52 })
52 53
53 return; 54 return;
54 } 55 }
55 56
56 if (res.statusCode != 200) { 57 if (res.statusCode != 200) {
57 let rc = '68'; 58 let rc = '68';
58 logger.warn('Partner returning non 200 HTTP STATUS CODE', {task: task, http_status_code: res.statusCode}) 59 logger.warn('Partner returning non 200 HTTP STATUS CODE', {task: task, http_status_code: res.statusCode})
59 60
60 _reportToCore({ 61 _reportToCore({
61 trx_id: task.trx_id, 62 trx_id: task.trx_id,
62 rc: rc, 63 rc: rc,
63 message: 'Partner returning HTTP STATUS CODE ' + res.statusCode + ' instead of 200', 64 message: 'Partner returning HTTP STATUS CODE ' + res.statusCode + ' instead of 200',
64 handler: config.handler_name 65 handler: config.handler_name
65 }) 66 })
66 67
67 return; 68 return;
68 } 69 }
69 70
70 misc.processPartnerResponseBody(body, task); 71 misc.processPartnerResponseBody(body, task);
71 }) 72 })
72 } 73 }
73 74
74 /** 75 /**
75 * Mengirim report hasil transaksi ke CORE 76 * Mengirim report hasil transaksi ke CORE
76 */ 77 */
77 function reportToCore(data) { 78 function reportToCore(data) {
78 pull.report(data); 79 pull.report(data);
79 } 80 }
80 81
81 exports.buy = buy; 82 exports.buy = buy;
82 exports.statusCheck = statusCheck; 83 exports.statusCheck = statusCheck;
83 exports.reportToCore = reportToCore; 84 exports.reportToCore = reportToCore;
84 85