Commit 2379f3a6b3589e1d71959ab463611ff6a97128e4

Authored by Adhidarma Hadiwinoto
1 parent f9c75e1fa9
Exists in master

http report

Showing 1 changed file with 43 additions and 10 deletions Inline Diff

1 var config;
2 var logger;
3 var name = require('path').basename(__filename); 1 var name = require('path').basename(__filename);
2
3 var redis = require('redis');
4 var redisClient;
5
4 var http = require('http'); 6 var http = require('http');
5 var nsr = require('node-simple-router'); 7 var nsr = require('node-simple-router');
6 var router = nsr(); 8 var router = nsr();
7 var httpServer;
8 9
9 function onGetChipsIndex(request, response) { 10 var httpServer;
10 response.end(); 11 var config;
11 } 12 var logger;
12 13
13 function onGetDenomsIndex(request, response) { 14 function onHttpGetByDenom(request, response) {
14 response.end(); 15 var key = 'stock.dompul.by-denom.' + request.params.denom;
16
17 redisClient.hgetall(key, function(err, obj) {
18
19 if (err) {
20 response.end();
21 return;
22 }
23
24 if (request.params.total != true) {
25 response.end(JSON.stringify(obj));
26 return;
27 }
28
29 var chips = Object.getOwnPropertyNames(obj);
30 var chipsCount = chips.length;
31 var total = 0;
32
33 for (var i = 0; i < chipsCount; i++) {
34 total = total + parseInt(obj[chips[i]]);
35 }
36 response.end(total.toString());
37 });
15 } 38 }
16 39
17 40
18 function createServer() { 41 function createServer() {
19 router.get('/chips', onGetChipsIndex); 42 router.get('/denoms/:denom', onHttpGetByDenom);
20 router.get('/denoms', onGetDenomsIndex); 43 router.get('/denoms/:denom/total', function(req, res) {
44 req.params.total = true;
45 onHttpGetByDenom(req, res);
46 });
21 47
22 httpServer = http.createServer(router).listen(config.httpserver.listen_port); 48 httpServer = http.createServer(router).listen(config.httpserver.listen_port);
23 console.log('HTTP server listens on port ' + config.httpserver.listen_port); 49 console.log('HTTP server listens on port ' + config.httpserver.listen_port);
24 } 50 }
25 51
26 function start(_config, _logger) { 52 function start(_config, _logger) {
27 config = _config; 53 config = _config;
28 logger = _logger; 54 logger = _logger;
29 55
56 redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host);
57
58 redisClient.on("error", function (err) {
59 logger.error(name + "- redis client error: " + err);
60 });
61
62
30 logger.info('Starting http server'); 63 logger.info('Starting http server');
31 64
32 createServer(); 65 createServer();
33 } 66 }