Commit b3419340d65ef20eb8b2d80ef3e2de55fac1f275
1 parent
a019559fa3
Exists in
master
change url pathname
Showing 1 changed file with 2 additions and 2 deletions Inline Diff
httpserver.js
1 | var name = require('path').basename(__filename); | 1 | var name = require('path').basename(__filename); |
2 | 2 | ||
3 | var redis = require('redis'); | 3 | var redis = require('redis'); |
4 | var redisClient; | 4 | var redisClient; |
5 | 5 | ||
6 | var http = require('http'); | 6 | var http = require('http'); |
7 | var nsr = require('node-simple-router'); | 7 | var nsr = require('node-simple-router'); |
8 | var router = nsr(); | 8 | var router = nsr(); |
9 | 9 | ||
10 | var js2xmlparser = require('js2xmlparser'); | 10 | var js2xmlparser = require('js2xmlparser'); |
11 | 11 | ||
12 | var httpServer; | 12 | var httpServer; |
13 | var config; | 13 | var config; |
14 | var logger; | 14 | var logger; |
15 | 15 | ||
16 | function formatData(data, format) { | 16 | function formatData(data, format) { |
17 | if (format == 'xml') { | 17 | if (format == 'xml') { |
18 | return js2xmlparser('stock', data); | 18 | return js2xmlparser('stock', data); |
19 | } | 19 | } |
20 | return JSON.stringify(data); | 20 | return JSON.stringify(data); |
21 | } | 21 | } |
22 | 22 | ||
23 | function onHttpGetByDenom(request, response) { | 23 | function onHttpGetByDenom(request, response) { |
24 | var key = 'stock.dompul.by-denom.' + request.params.denom; | 24 | var key = 'stock.dompul.by-denom.' + request.params.denom; |
25 | 25 | ||
26 | redisClient.hgetall(key, function(err, obj) { | 26 | redisClient.hgetall(key, function(err, obj) { |
27 | 27 | ||
28 | if (err) { | 28 | if (err) { |
29 | response.end(); | 29 | response.end(); |
30 | return; | 30 | return; |
31 | } | 31 | } |
32 | 32 | ||
33 | if (request.params.total != true) { | 33 | if (request.params.total != true) { |
34 | response.end(formatData(obj, request.params.format)); | 34 | response.end(formatData(obj, request.params.format)); |
35 | return; | 35 | return; |
36 | } | 36 | } |
37 | 37 | ||
38 | var chips = Object.getOwnPropertyNames(obj); | 38 | var chips = Object.getOwnPropertyNames(obj); |
39 | var chipsCount = chips.length; | 39 | var chipsCount = chips.length; |
40 | var total = 0; | 40 | var total = 0; |
41 | 41 | ||
42 | for (var i = 0; i < chipsCount; i++) { | 42 | for (var i = 0; i < chipsCount; i++) { |
43 | total = total + parseInt(obj[chips[i]]); | 43 | total = total + parseInt(obj[chips[i]]); |
44 | } | 44 | } |
45 | response.end(total.toString()); | 45 | response.end(total.toString()); |
46 | }); | 46 | }); |
47 | } | 47 | } |
48 | 48 | ||
49 | 49 | ||
50 | function createServer() { | 50 | function createServer() { |
51 | router.get('/realtime/stock/:denom/index/:format', onHttpGetByDenom); | 51 | router.get('/realtime-report/stock/:denom/index/:format', onHttpGetByDenom); |
52 | 52 | ||
53 | router.get('/realtime/stock/denoms/:denom/total', function(req, res) { | 53 | router.get('/realtime-report/stock/denoms/:denom/total', function(req, res) { |
54 | req.params.total = true; | 54 | req.params.total = true; |
55 | onHttpGetByDenom(req, res); | 55 | onHttpGetByDenom(req, res); |
56 | }); | 56 | }); |
57 | 57 | ||
58 | httpServer = http.createServer(router).listen(config.httpserver.listen_port); | 58 | httpServer = http.createServer(router).listen(config.httpserver.listen_port); |
59 | console.log('HTTP server listens on port ' + config.httpserver.listen_port); | 59 | console.log('HTTP server listens on port ' + config.httpserver.listen_port); |
60 | } | 60 | } |
61 | 61 | ||
62 | function start(_config, _logger) { | 62 | function start(_config, _logger) { |
63 | config = _config; | 63 | config = _config; |
64 | logger = _logger; | 64 | logger = _logger; |
65 | 65 | ||
66 | redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host); | 66 | redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host); |
67 | 67 | ||
68 | redisClient.on("error", function (err) { | 68 | redisClient.on("error", function (err) { |
69 | logger.error(name + "- redis client error: " + err); | 69 | logger.error(name + "- redis client error: " + err); |
70 | }); | 70 | }); |
71 | 71 | ||
72 | 72 | ||
73 | logger.info('Starting http server'); | 73 | logger.info('Starting http server'); |
74 | 74 | ||
75 | createServer(); | 75 | createServer(); |
76 | } | 76 | } |
77 | 77 | ||
78 | exports.start = start; | 78 | exports.start = start; |
79 | 79 |