Commit 0fbfe1e7dc7f5be9513a0a0bf37313c0f90e26fa

Authored by Adhidarma Hadiwinoto
1 parent 6db34b64f6
Exists in master

do not create reverse report server if port is not defined

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

lib/reverse-report.js
1 "use strict"; 1 "use strict";
2 2
3 const xmlrpc = require('xmlrpc'); 3 const xmlrpc = require('xmlrpc');
4 4
5 const config = require('komodo-sdk/config'); 5 const config = require('komodo-sdk/config');
6 const logger = require('komodo-sdk/logger'); 6 const logger = require('komodo-sdk/logger');
7 const matrix = require('komodo-sdk/matrix'); 7 const matrix = require('komodo-sdk/matrix');
8 const pull = require('komodo-sdk/gateway/pull'); 8 const pull = require('komodo-sdk/gateway/pull');
9 9
10 const st24 = require('./st24'); 10 const st24 = require('./st24');
11 const partner = require('./partner'); 11 const partner = require('./partner');
12 const partnerRc = require('./partner-rc.json'); 12 const partnerRc = require('./partner-rc.json');
13 13
14 function create() { 14 function create() {
15 const server = xmlrpc.createServer({ 15 if (!config || !config.reverse_report_port) {
16 port: config.reverse_report_port 16 logger.info('Not creating reverse report server because of undefined config.reverse_report_port');
17 }); 17 return;
18 }
19
20 const server = xmlrpc.createServer({ port: config.reverse_report_port });
18 21
19 logger.info('Reverse report server listen on port ' + config.reverse_report_port); 22 logger.info('Reverse report server listen on port ' + config.reverse_report_port);
20 23
21 server.on('NotFound', function (method, params) { 24 server.on('NotFound', function (method, params) {
22 logger.warn('REVERSEREPORT: Unknown method recevied on XMLRPC server', {method: method, params: params}); 25 logger.warn('REVERSEREPORT: Unknown method recevied on XMLRPC server', {method: method, params: params});
23 }); 26 });
24 27
25 server.on('topUpReport', function (err, params, callback) { 28 server.on('topUpReport', function (err, params, callback) {
26 29
27 logger.info('REVERSEREPORT: Got XMLRPC topUpReport request from partner', {method: 'topUpReport', params: params}); 30 logger.info('REVERSEREPORT: Got XMLRPC topUpReport request from partner', {method: 'topUpReport', params: params});
28 matrix.last_topupReport_params = params; 31 matrix.last_topupReport_params = params;
29 32
30 const paramsCount = params.length; 33 const paramsCount = params.length;
31 for (let i = 0; i < paramsCount; i++) { 34 for (let i = 0; i < paramsCount; i++) {
32 let value = params[i]; 35 let value = params[i];
33 36
34 partner.report({ 37 partner.report({
35 trx_id: value.REQUESTID, 38 trx_id: value.REQUESTID,
36 rc: partnerRc[value.RESPONSECODE] || '40', 39 rc: partnerRc[value.RESPONSECODE] || '40',
37 message: value.MESSAGE, 40 message: value.MESSAGE,
38 sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE), 41 sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE),
39 amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE), 42 amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE),
40 raw: value, 43 raw: value,
41 misc: { 44 misc: {
42 } 45 }
43 }); 46 });
44 } 47 }
45 48
46 callback(null, 'ACK REPORT OK'); 49 callback(null, 'ACK REPORT OK');
47 }) 50 })
48 } 51 }
49 52
50 create(); 53 create();
51 54