Commit b3419340d65ef20eb8b2d80ef3e2de55fac1f275

Authored by Adhidarma Hadiwinoto
1 parent a019559fa3
Exists in master

change url pathname

Showing 1 changed file with 2 additions and 2 deletions Inline Diff

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