Commit 63698b997963d5b7cebfb6d2092592ee2853477c

Authored by Adhidarma Hadiwinoto
1 parent 4e6915c9b3
Exists in master

config.partner.reverse_report_using_rc_local

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

lib/irs/reverse-report.js
1 const fs = require('fs'); 1 const fs = require('fs');
2 const http = require('http'); 2 const http = require('http');
3 const url = require('url'); 3 const url = require('url');
4 4
5 const stringify = require("json-stringify-pretty-compact"); 5 const stringify = require("json-stringify-pretty-compact");
6 6
7 const config = require('komodo-sdk/config'); 7 const config = require('komodo-sdk/config');
8 const logger = require('komodo-sdk/logger'); 8 const logger = require('komodo-sdk/logger');
9 9
10 const partner = require('../partner'); 10 const partner = require('../partner');
11 const irs = require('komodo-gw-irs-lib'); 11 const irs = require('komodo-gw-irs-lib');
12 12
13 const localRc = fs.existsSync(__dirname + '/../../rc-local.json') ? require('../../rc-local.json') : null; 13 const localRc = fs.existsSync(__dirname + '/../../rc-local.json') ? require('../../rc-local.json') : null;
14 14
15 function processPartnerReport(qs) { 15 function processPartnerReport(qs) {
16 let rc = '68'; 16 let rc = '68';
17 17
18 if (config.partner.reverse_report_irs_using_rc_local && localRc && qs.statuscode) { 18 if (config.partner.reverse_report_using_rc_local && localRc && qs.statuscode) {
19 rc = localRc[qs.statuscode] || '40'; 19 rc = localRc[qs.statuscode] || '40';
20 } else if (qs.statuscode === '1') { 20 } else if (qs.statuscode === '1') {
21 rc = '00'; 21 rc = '00';
22 } else if (qs.statuscode === '2') { 22 } else if (qs.statuscode === '2') {
23 rc = '40'; 23 rc = '40';
24 } 24 }
25 25
26 if (rc === '40') { 26 if (rc === '40') {
27 rc = irs.getRcFromMessage(qs.msg) || '40'; 27 rc = irs.getRcFromMessage(qs.msg) || '40';
28 } 28 }
29 29
30 let amount = null; 30 let amount = null;
31 if (rc === '00') { 31 if (rc === '00') {
32 amount = Number(qs.hrg); 32 amount = Number(qs.hrg);
33 if (!amount) { 33 if (!amount) {
34 amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern); 34 amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern);
35 } 35 }
36 } 36 }
37 37
38 partner.report({ 38 partner.report({
39 trx_id: qs.clientid, 39 trx_id: qs.clientid,
40 rc: rc, 40 rc: rc,
41 message: 'REVERSE-REPORT: ' + stringify(qs), 41 message: 'REVERSE-REPORT: ' + stringify(qs),
42 raw: stringify(qs), 42 raw: stringify(qs),
43 sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null, 43 sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null,
44 amount: amount, 44 amount: amount,
45 balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null, 45 balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null,
46 misc: {} 46 misc: {}
47 }) 47 })
48 } 48 }
49 49
50 function create() { 50 function create() {
51 http.createServer(function (req, res) { 51 http.createServer(function (req, res) {
52 res.writeHead(200, {'Content-Type': 'text/html'}); 52 res.writeHead(200, {'Content-Type': 'text/html'});
53 const qs = url.parse(req.url, true).query; 53 const qs = url.parse(req.url, true).query;
54 res.end('OK'); 54 res.end('OK');
55 55
56 const remote_ip = req.connection ? req.connection.remoteAddress : null; 56 const remote_ip = req.connection ? req.connection.remoteAddress : null;
57 logger.verbose('REVERSE-REPORT: got report from partner', {url: req.url, remote_ip: remote_ip}); 57 logger.verbose('REVERSE-REPORT: got report from partner', {url: req.url, remote_ip: remote_ip});
58 58
59 processPartnerReport(qs); 59 processPartnerReport(qs);
60 }).listen(config.reverse_report_port); 60 }).listen(config.reverse_report_port);
61 61
62 logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port); 62 logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port);
63 } 63 }
64 64
65 config.reverse_report_port && create(); 65 config.reverse_report_port && create();
66 66