Commit 4e6915c9b3fb3c20122997f372dae71d3253f775

Authored by Adhidarma Hadiwinoto
1 parent 3e0e546fc0
Exists in master

config.partner.reverse_report_irs_using_rc_local

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

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