Commit 0ca08413981fd8bd8cc453c541e9e5e49001775e

Authored by Adhidarma Hadiwinoto
1 parent a0af78431b
Exists in master

ignore SNOK

Showing 1 changed file with 1 additions and 0 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 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