Commit cd01e19ddf19b739d41884b6cc19310f2b435594

Authored by Adhidarma Hadiwinoto
1 parent 5229b8c18d
Exists in master

Debug on rc local reverse report

Showing 1 changed file with 6 additions and 0 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 if (localRc) {
15 logger.info('REVERSE-REPORT: Found rc-local.json', {
16 useRcLocalOnReverseReport: config.partner.reverse_report_using_rc_local,
17 localRc,
18 });
19 }
14 20
15 function processPartnerReport(qs) { 21 function processPartnerReport(qs) {
16 let rc = '68'; 22 let rc = '68';
17 23
18 if (config.partner.reverse_report_using_rc_local && localRc && qs.statuscode) { 24 if (config.partner.reverse_report_using_rc_local && localRc && qs.statuscode) {
19 rc = localRc[qs.statuscode] || '40'; 25 rc = localRc[qs.statuscode] || '40';
20 } else if (qs.statuscode === '1') { 26 } else if (qs.statuscode === '1') {
21 rc = '00'; 27 rc = '00';
22 } else if (qs.statuscode === '2') { 28 } else if (qs.statuscode === '2') {
23 rc = '40'; 29 rc = '40';
24 } 30 }
25 31
26 if (rc === '40') { 32 if (rc === '40') {
27 rc = irs.getRcFromMessage(qs.msg) || '40'; 33 rc = irs.getRcFromMessage(qs.msg) || '40';
28 } 34 }
29 35
30 let amount = null; 36 let amount = null;
31 if (rc === '00') { 37 if (rc === '00') {
32 amount = Number(qs.hrg); 38 amount = Number(qs.hrg);
33 if (!amount) { 39 if (!amount) {
34 amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern); 40 amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern);
35 } 41 }
36 } 42 }
37 43
38 partner.report({ 44 partner.report({
39 trx_id: qs.clientid, 45 trx_id: qs.clientid,
40 rc: rc, 46 rc: rc,
41 message: 'REVERSE-REPORT: ' + stringify(qs), 47 message: 'REVERSE-REPORT: ' + stringify(qs),
42 raw: stringify(qs), 48 raw: stringify(qs),
43 sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null, 49 sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null,
44 amount: amount, 50 amount: amount,
45 balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null, 51 balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null,
46 misc: {} 52 misc: {}
47 }) 53 })
48 } 54 }
49 55
50 function create() { 56 function create() {
51 http.createServer(function (req, res) { 57 http.createServer(function (req, res) {
52 res.writeHead(200, {'Content-Type': 'text/html'}); 58 res.writeHead(200, {'Content-Type': 'text/html'});
53 const qs = url.parse(req.url, true).query; 59 const qs = url.parse(req.url, true).query;
54 res.end('OK'); 60 res.end('OK');
55 61
56 const remote_ip = req.connection ? req.connection.remoteAddress : null; 62 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}); 63 logger.verbose('REVERSE-REPORT: got report from partner', {url: req.url, remote_ip: remote_ip});
58 64
59 processPartnerReport(qs); 65 processPartnerReport(qs);
60 }).listen(config.reverse_report_port); 66 }).listen(config.reverse_report_port);
61 67
62 logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port); 68 logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port);
63 } 69 }
64 70
65 config.reverse_report_port && create(); 71 config.reverse_report_port && create();
66 72