Commit a0af78431b7d017729d67208d07cdb26dc0e60d7

Authored by Adhidarma Hadiwinoto
1 parent 8611df5622
Exists in master

also show stock in single chip

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

1 var name = 'Store DOMPUL stock'; 1 var name = 'Store DOMPUL stock';
2 var logger = require('winston'); 2 var logger = require('winston');
3 logger.info('Starting ' + name); 3 logger.info('Starting ' + name);
4 4
5 logger.info('Parsing config file'); 5 logger.info('Parsing config file');
6 var iniparser = require('iniparser'); 6 var iniparser = require('iniparser');
7 var config = iniparser.parseSync('./config.ini'); 7 var config = iniparser.parseSync('./config.ini');
8 8
9 logger.info('Creating redis clients for ' + config.globals.redis_host + ':' + config.globals.redis_port); 9 logger.info('Creating redis clients for ' + config.globals.redis_host + ':' + config.globals.redis_port);
10 var redis = require('redis'); 10 var redis = require('redis');
11 var redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host); 11 var redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host);
12 var redisSubscriber = redis.createClient(config.globals.redis_port, config.globals.redis_host); 12 var redisSubscriber = redis.createClient(config.globals.redis_port, config.globals.redis_host);
13 13
14 redisSubscriber.on('message', function(channel, message) { 14 redisSubscriber.on('message', function(channel, message) {
15 if (channel == config.channels.dompul_proxy_topup) { 15 if (channel == config.channels.dompul_proxy_topup) {
16 var params = JSON.parse(message); 16 var params = JSON.parse(message);
17 17
18 if (params['resp_code'] != '00') return; 18 if (params['resp_code'] != '00') return;
19 19
20 redisClient.hset('stock.dompul.by-denom.' + params['ussd_nom'], params['ussd_chipinfo'], parseInt(params['ussd_stok'])); 20 redisClient.hset('stock.dompul.by-denom.' + params['ussd_nom'], params['ussd_chipinfo'], parseInt(params['ussd_stok']));
21 redisClient.hset('stock.dompul.by-chipinfo.' + params['ussd_chipinfo'], params['ussd_nom'], parseInt(params['ussd_stok'])); 21 redisClient.hset('stock.dompul.by-chipinfo.' + params['ussd_chipinfo'], params['ussd_nom'], parseInt(params['ussd_stok']));
22 22
23 var key = 'stock.dompul.by-denom.' + params['ussd_nom']; 23 var key = 'stock.dompul.by-denom.' + params['ussd_nom'];
24 24
25 redisClient.hgetall(key, function(err, obj) { 25 redisClient.hgetall(key, function(err, obj) {
26 var chips = Object.getOwnPropertyNames(obj); 26 var chips = Object.getOwnPropertyNames(obj);
27 var chipsCount = chips.length; 27 var chipsCount = chips.length;
28 28
29 var total = 0; 29 var total = 0;
30 var nonEmptyChipsCount = 0; 30 var nonEmptyChipsCount = 0;
31 31
32 for (var i = 0; i < chipsCount; i++) { 32 for (var i = 0; i < chipsCount; i++) {
33 var stock = parseInt(obj[chips[i]]); 33 var stock = parseInt(obj[chips[i]]);
34 if (stock > 0) { 34 if (stock > 0) {
35 nonEmptyChipsCount++; 35 nonEmptyChipsCount++;
36 } 36 }
37 37
38 total = total + stock; 38 total = total + stock;
39 } 39 }
40 40
41 logger.info('XL' + params['ussd_nom'] + ': ' + total + ' in ' + nonEmptyChipsCount + ' chips'); 41 logger.info(
42 'XL' + params['ussd_nom']
43 + ' '
44 + params['ussd_chipinfo'] + ': ' + parseInt(params['ussd_stok'])
45 + '; Total ' + total + ' in ' + nonEmptyChipsCount + ' chips');
42 }); 46 });
43 } 47 }
44 }); 48 });
45 49
46 50
47 logger.info('Subscribing redis channel'); 51 logger.info('Subscribing redis channel');
48 redisSubscriber.subscribe(config.channels.dompul_proxy_topup); 52 redisSubscriber.subscribe(config.channels.dompul_proxy_topup);
49 logger.info('Waiting for redis message'); 53 logger.info('Waiting for redis message');
50 54