-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
109 lines (90 loc) · 3.12 KB
/
app.js
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
var app = require('express')();
var http = require('http').createServer(app);
var api = require('./neo4j');
const fs = require('fs');
function ConvertToCSV(objArray,keys) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
var lines = '';
for (var key in keys) {
lines += keys[key] +','
}
lines = lines.substring(0, lines.length - 1);
str += lines + '\r\n';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
if (line != '') line += ','
if (typeof(array[i][index]) == typeof("") && array[i][index].includes(",") ) {
line += array[i][index].replace(/,/g, ";"); // to fix the issue with comma in string, I replace all the comma by ;
}else {
line += array[i][index];
}
}
str += line + '\r\n';
}
return str;
}
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.get('/drWho', function(req, res) {
api.All_nodes().then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(resultJson);
});
});
app.get('/drWho/:trace/nodes_of_type/:type', function(req, res) {
api.nodes_of_type(req.params.type, req.params.trace).then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(resultJson);
});
});
app.get('/drWho/:trace/links_from_node/:node_id', function(req, res) {
api.links_from_node(req.params.node_id, req.params.trace).then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(resultJson);
});
});
app.get('/drWho/:trace/links_from_any_node/:label_type', function(req, res) {
api.links_from_any_node(req.params.label_type, req.params.trace).then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(resultJson);
});
});
app.get('/drWho/:trace/linked_from_node/:node_id/:relation', function(req, res) {
if (req.params.node_id == 'any') {
api.linked_any(req.params.relation, req.params.trace).then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(resultJson);
});
}else {
api.linked_from_node(req.params.node_id, req.params.relation, req.params.trace).then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(resultJson);
});
}
});
app.get('/drWho/:trace/get_propertiescsv', function(req, res) {
api.get_properties(req.params.trace).then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(ConvertToCSV(resultJson[0], resultJson[1]));
});
});
app.all('/drWho/get_properties_of_node', function(req, res) {
var trace = "";
req.setEncoding('utf8');
req.on("data", function(chunk) { trace += chunk });
req.on('end', function() {
api.get_properties(trace).then(resultJson => {
res.setHeader('Content-Type', 'text/plain');
res.end(resultJson[0]);
});
});
});
var port = process.env.port || 8000;
http.listen(port, function(){
console.log('Listening on port: ', port);
});