Commit 0ca08413981fd8bd8cc453c541e9e5e49001775e
1 parent
a0af78431b
Exists in
master
ignore SNOK
Showing 1 changed file with 1 additions and 0 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 | if (params['ussd_msg'].indexOf('$SN=;OK') >= 0) return; | ||
19 | 20 | ||
20 | redisClient.hset('stock.dompul.by-denom.' + params['ussd_nom'], params['ussd_chipinfo'], parseInt(params['ussd_stok'])); | 21 | 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 | redisClient.hset('stock.dompul.by-chipinfo.' + params['ussd_chipinfo'], params['ussd_nom'], parseInt(params['ussd_stok'])); |
22 | 23 | ||
23 | var key = 'stock.dompul.by-denom.' + params['ussd_nom']; | 24 | var key = 'stock.dompul.by-denom.' + params['ussd_nom']; |
24 | 25 | ||
25 | redisClient.hgetall(key, function(err, obj) { | 26 | redisClient.hgetall(key, function(err, obj) { |
26 | var chips = Object.getOwnPropertyNames(obj); | 27 | var chips = Object.getOwnPropertyNames(obj); |
27 | var chipsCount = chips.length; | 28 | var chipsCount = chips.length; |
28 | 29 | ||
29 | var total = 0; | 30 | var total = 0; |
30 | var nonEmptyChipsCount = 0; | 31 | var nonEmptyChipsCount = 0; |
31 | 32 | ||
32 | for (var i = 0; i < chipsCount; i++) { | 33 | for (var i = 0; i < chipsCount; i++) { |
33 | var stock = parseInt(obj[chips[i]]); | 34 | var stock = parseInt(obj[chips[i]]); |
34 | if (stock > 0) { | 35 | if (stock > 0) { |
35 | nonEmptyChipsCount++; | 36 | nonEmptyChipsCount++; |
36 | } | 37 | } |
37 | 38 | ||
38 | total = total + stock; | 39 | total = total + stock; |
39 | } | 40 | } |
40 | 41 | ||
41 | logger.info( | 42 | logger.info( |
42 | 'XL' + params['ussd_nom'] | 43 | 'XL' + params['ussd_nom'] |
43 | + ' ' | 44 | + ' ' |
44 | + params['ussd_chipinfo'] + ': ' + parseInt(params['ussd_stok']) | 45 | + params['ussd_chipinfo'] + ': ' + parseInt(params['ussd_stok']) |
45 | + '; Total ' + total + ' in ' + nonEmptyChipsCount + ' chips'); | 46 | + '; Total ' + total + ' in ' + nonEmptyChipsCount + ' chips'); |
46 | }); | 47 | }); |
47 | } | 48 | } |
48 | }); | 49 | }); |
49 | 50 | ||
50 | 51 | ||
51 | logger.info('Subscribing redis channel'); | 52 | logger.info('Subscribing redis channel'); |
52 | redisSubscriber.subscribe(config.channels.dompul_proxy_topup); | 53 | redisSubscriber.subscribe(config.channels.dompul_proxy_topup); |
53 | logger.info('Waiting for redis message'); | 54 | logger.info('Waiting for redis message'); |
54 | 55 |