Commit 2379f3a6b3589e1d71959ab463611ff6a97128e4

Authored by Adhidarma Hadiwinoto
1 parent f9c75e1fa9
Exists in master

http report

Showing 1 changed file with 43 additions and 10 deletions Side-by-side Diff

1   -var config;
2   -var logger;
3 1 var name = require('path').basename(__filename);
  2 +
  3 +var redis = require('redis');
  4 +var redisClient;
  5 +
4 6 var http = require('http');
5 7 var nsr = require('node-simple-router');
6 8 var router = nsr();
7   -var httpServer;
8 9  
9   -function onGetChipsIndex(request, response) {
10   - response.end();
11   -}
  10 +var httpServer;
  11 +var config;
  12 +var logger;
12 13  
13   -function onGetDenomsIndex(request, response) {
14   - response.end();
  14 +function onHttpGetByDenom(request, response) {
  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 41 function createServer() {
19   - router.get('/chips', onGetChipsIndex);
20   - router.get('/denoms', onGetDenomsIndex);
  42 + router.get('/denoms/:denom', onHttpGetByDenom);
  43 + router.get('/denoms/:denom/total', function(req, res) {
  44 + req.params.total = true;
  45 + onHttpGetByDenom(req, res);
  46 + });
21 47  
22 48 httpServer = http.createServer(router).listen(config.httpserver.listen_port);
23 49 console.log('HTTP server listens on port ' + config.httpserver.listen_port);
... ... @@ -27,6 +53,13 @@ function start(_config, _logger) {
27 53 config = _config;
28 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 63 logger.info('Starting http server');
31 64  
32 65 createServer();