From 2379f3a6b3589e1d71959ab463611ff6a97128e4 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <gua@adhisimon.org> Date: Fri, 10 Apr 2015 16:27:58 +0700 Subject: [PATCH] http report --- httpserver.js | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/httpserver.js b/httpserver.js index 3e43ea7..a5673bc 100644 --- a/httpserver.js +++ b/httpserver.js @@ -1,23 +1,49 @@ -var config; -var logger; var name = require('path').basename(__filename); + +var redis = require('redis'); +var redisClient; + var http = require('http'); var nsr = require('node-simple-router'); var router = nsr(); -var httpServer; -function onGetChipsIndex(request, response) { - response.end(); -} +var httpServer; +var config; +var logger; -function onGetDenomsIndex(request, response) { - response.end(); +function onHttpGetByDenom(request, response) { + var key = 'stock.dompul.by-denom.' + request.params.denom; + + redisClient.hgetall(key, function(err, obj) { + + if (err) { + response.end(); + return; + } + + if (request.params.total != true) { + response.end(JSON.stringify(obj)); + return; + } + + var chips = Object.getOwnPropertyNames(obj); + var chipsCount = chips.length; + var total = 0; + + for (var i = 0; i < chipsCount; i++) { + total = total + parseInt(obj[chips[i]]); + } + response.end(total.toString()); + }); } function createServer() { - router.get('/chips', onGetChipsIndex); - router.get('/denoms', onGetDenomsIndex); + router.get('/denoms/:denom', onHttpGetByDenom); + router.get('/denoms/:denom/total', function(req, res) { + req.params.total = true; + onHttpGetByDenom(req, res); + }); httpServer = http.createServer(router).listen(config.httpserver.listen_port); console.log('HTTP server listens on port ' + config.httpserver.listen_port); @@ -27,6 +53,13 @@ function start(_config, _logger) { config = _config; logger = _logger; + redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host); + + redisClient.on("error", function (err) { + logger.error(name + "- redis client error: " + err); + }); + + logger.info('Starting http server'); createServer(); -- 1.9.0