Commit a24fe9cc67b63271ea575b220dab78708a9d146e
1 parent
f9501d5698
Exists in
master
ready to run
Showing 2 changed files with 38 additions and 2 deletions Inline 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 | var iniparser = require('iniparser'); | 6 | var iniparser = require('iniparser'); |
2 | var config = iniparser.parseSync('./config.ini'); | 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 | var redis = require('redis'); | 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'); | ||
6 | 41 |
package.json
1 | { | 1 | { |
2 | "name": "store-dompul-stock", | 2 | "name": "store-dompul-stock", |
3 | "version": "0.0.1", | 3 | "version": "0.0.1", |
4 | "description": "Store DOMPUL stock in Redis", | 4 | "description": "Store DOMPUL stock in Redis", |
5 | "main": "index.js", | 5 | "main": "index.js", |
6 | "scripts": { | 6 | "scripts": { |
7 | "test": "mocha" | 7 | "test": "mocha" |
8 | }, | 8 | }, |
9 | "repository": { | 9 | "repository": { |
10 | "type": "git", | 10 | "type": "git", |
11 | "url": "git@gitlab.kodesumber.com:reload97/store-dompul-stock.git" | 11 | "url": "git@gitlab.kodesumber.com:reload97/store-dompul-stock.git" |
12 | }, | 12 | }, |
13 | "keywords": [ | 13 | "keywords": [ |
14 | "Reload97", | 14 | "Reload97", |
15 | "ST24", | 15 | "ST24", |
16 | "PPOB", | 16 | "PPOB", |
17 | "Server", | 17 | "Server", |
18 | "Pulsa" | 18 | "Pulsa" |
19 | ], | 19 | ], |
20 | "author": "Adhidarma Hadiwinoto", | 20 | "author": "Adhidarma Hadiwinoto", |
21 | "license": "BSD", | 21 | "license": "BSD", |
22 | "dependencies": { | 22 | "dependencies": { |
23 | "redis": "~0.12.1", | 23 | "redis": "~0.12.1", |
24 | "hiredis": "~0.3.0", | 24 | "hiredis": "~0.3.0", |
25 | "iniparser": "~1.0.5" | 25 | "iniparser": "~1.0.5", |
26 | "winston": "~1.0.0" | ||
26 | } | 27 | } |
27 | } | 28 | } |
28 | 29 |