Commit a24fe9cc67b63271ea575b220dab78708a9d146e
1 parent
f9501d5698
Exists in
master
ready to run
Showing 2 changed files with 38 additions and 2 deletions Side-by-side Diff
index.js
1 | +var name = 'Store DOMPUL stock'; | |
2 | +var logger = require('winston'); | |
3 | +logger.info('Starting ' + name); | |
4 | + | |
5 | +logger.info('Parsing config file'); | |
1 | 6 | var iniparser = require('iniparser'); |
2 | 7 | var config = iniparser.parseSync('./config.ini'); |
3 | 8 | |
9 | +logger.info('Creating redis clients for ' + config.globals.redis_host + ':' + config.globals.redis_port); | |
4 | 10 | var redis = require('redis'); |
5 | -var redisClient = redis.createClient(); | |
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); | |
13 | + | |
14 | +redisSubscriber.on('message', function(channel, message) { | |
15 | + if (channel == config.channels.dompul_proxy_topup) { | |
16 | + var params = JSON.parse(message); | |
17 | + | |
18 | + if (params['resp_code'] != '00') return; | |
19 | + | |
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'])); | |
22 | + | |
23 | + var key = 'stock.dompul.by-denom.' + params['ussd_nom']; | |
24 | + redisClient.hgetall(key, function(err, obj) { | |
25 | + var chips = Object.getOwnPropertyNames(obj); | |
26 | + var chipsCount = chips.length; | |
27 | + var total = 0; | |
28 | + for (var i = 0; i < chipsCount; i++) { | |
29 | + total = total + parseInt(obj[chips[i]]); | |
30 | + } | |
31 | + | |
32 | + logger.info(params['ussd_nom'] + ': ' + total); | |
33 | + }); | |
34 | + } | |
35 | +}); | |
36 | + | |
37 | + | |
38 | +logger.info('Subscribing redis channel'); | |
39 | +redisSubscriber.subscribe(config.channels.dompul_proxy_topup); | |
40 | +logger.info('Waiting for redis message'); |