Commit 703705ead78738172b2213d61418ea9e1cb8216e
1 parent
a24fe9cc67
Exists in
master
non empty chips count
Showing 1 changed file with 11 additions and 2 deletions Inline Diff
index.js
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 | redisClient.hgetall(key, function(err, obj) { | 25 | redisClient.hgetall(key, function(err, obj) { |
25 | var chips = Object.getOwnPropertyNames(obj); | 26 | var chips = Object.getOwnPropertyNames(obj); |
26 | var chipsCount = chips.length; | 27 | var chipsCount = chips.length; |
28 | |||
27 | var total = 0; | 29 | var total = 0; |
30 | var nonEmptyChipsCount = 0; | ||
31 | |||
28 | for (var i = 0; i < chipsCount; i++) { | 32 | for (var i = 0; i < chipsCount; i++) { |
29 | total = total + parseInt(obj[chips[i]]); | 33 | var stock = parseInt(obj[chips[i]]); |
34 | if (stock > 0) { | ||
35 | nonEmptyChipsCount++; | ||
36 | } | ||
37 | |||
38 | total = total + stock; | ||
30 | } | 39 | } |
31 | 40 | ||
32 | logger.info(params['ussd_nom'] + ': ' + total); | 41 | logger.info('DENOM ' + params['ussd_nom'] + ': ' + total + ' in ' + nonEmptyChipsCount + ' chips'); |
33 | }); | 42 | }); |
34 | } | 43 | } |
35 | }); | 44 | }); |
36 | 45 | ||
37 | 46 | ||
38 | logger.info('Subscribing redis channel'); | 47 | logger.info('Subscribing redis channel'); |
39 | redisSubscriber.subscribe(config.channels.dompul_proxy_topup); | 48 | redisSubscriber.subscribe(config.channels.dompul_proxy_topup); |
40 | logger.info('Waiting for redis message'); | 49 | logger.info('Waiting for redis message'); |
41 | 50 |