Commit 2379f3a6b3589e1d71959ab463611ff6a97128e4
1 parent
f9c75e1fa9
Exists in
master
http report
Showing 1 changed file with 43 additions and 10 deletions Side-by-side Diff
httpserver.js
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(); |