Commit a24fe9cc67b63271ea575b220dab78708a9d146e

Authored by Adhidarma Hadiwinoto
1 parent f9501d5698
Exists in master

ready to run

Showing 2 changed files with 38 additions and 2 deletions Side-by-side Diff

  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');
... ... @@ -22,6 +22,7 @@
22 22 "dependencies": {
23 23 "redis": "~0.12.1",
24 24 "hiredis": "~0.3.0",
25   - "iniparser": "~1.0.5"
  25 + "iniparser": "~1.0.5",
  26 + "winston": "~1.0.0"
26 27 }
27 28 }