forked from scarbonell-ibm/Reporting-UI
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
122 lines (99 loc) · 2.6 KB
/
Copy pathserver.js
File metadata and controls
122 lines (99 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
var express = require("express");
var app = express();
var cfenv = require("cfenv");
var bodyParser = require('body-parser')
var fs = require('fs');
var nib = require('nib')
app.set('views', __dirname+'/views')
app.set('view engine', 'jade')
app.use(express.logger('dev'))
app.use(express.static(__dirname+'/public'))
var port = process.env.API_PORT;
var domain = process.env.API_DOMAIN;
var context = process.env.API_CONTEXT;
if (!context) {
context="";
}
else {
//context = "/"+context;
}
///StoreManager
if (port && domain) {
console.log("http://"+domain+":"+port+context);
}
app.get('/', function (req, res) {
var nbRequests = 0;
var dataset0;
var dataset1;
var dataset2;
var version;
restCall (context+"/resources/api/data/sales_expenses", 0);
restCall (context+"/resources/api/data/sales_by_country", 1);
restCall (context+"/resources/api/data/sales_by_product", 2);
function restCall(url, dataToUpdate) {
console.log(url);
var http = require('http');
var options = {
host: domain ? domain : 'localhost',
port: port ? port : '9080',
path: url
};
callback = function(rps) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
rps.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
rps.on('end', function () {
console.log(str);
nbRequests+=1;
var data = JSON.parse(str);
if (dataToUpdate == 0) {
dataset0 = data.data.toString();
}
else if (dataToUpdate == 1) {
dataset1 = data.data.toString();
}
else if (dataToUpdate == 2) {
dataset2 = data.data.toString();
}
if (nbRequests == 3) {
getVersion();
}
});
}
http.request(options, callback).end();
}
function getVersion() {
var http = require('http');
var options = {
host: domain ? domain : 'localhost',
port: port ? port : '9080',
path: context+"/resources/api/version"
};
callback = function(rps) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
rps.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
rps.on('end', function () {
var data = JSON.parse(str);
console.log(data);
res.render('index',
{ title : 'Store Manager UI',
graph : str ,
dataset0: dataset0,
dataset1: dataset1,
dataset2: dataset2,
version: data.version
}
)
});
}
http.request(options, callback).end();
}
})
app.listen(3000)