Commit 879f58afcc5e6824af46b86a98f17d3c3d21e97f
1 parent
45f8679813
Exists in
master
require request
Showing 1 changed file with 1 additions and 0 deletions Inline Diff
partner.js
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 |