-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
164 lines (98 loc) · 4.89 KB
/
index.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
// --> Módulos instalados
var express=require("express"); // Cargamos el modulo
var bodyParser=require("body-parser");
var path=require("path");
var Datastore=require('nedb');
// Cabeceras cors
var cors = require("cors");
// --> Variables para el uso del servidor y módulos
var app=express(); // Generamos una aplicación que hace uso de express
app.use(bodyParser.json());
var port= (process.env.PORT || 10000); // Obtiene el puerto que se le indique o el 10000 en caso de no existir (Heroku no trabaja con puerto 10000)
app.use(cors());
// --> Bases de datos
var suicideDB=new Datastore({filename: "src/backEnd/suicidesAPI/suicidesV1/suicide.db",autoload:true});
var suicideDB2=new Datastore({filename: "src/backEnd/suicidesAPI/suicidesV2/suicide.db",autoload:true});
var suicideDB3=new Datastore({filename: "src/backEnd/suicidesAPI/integration/suicide.db",autoload:true});
var budgetsDB = new Datastore({filename: "src/backEnd/budgetsAPI/budgetsV1/budgets.db",autoload:true});
var budgetsDBV2 = new Datastore({filename: "src/backEnd/budgetsAPI/budgetsV2/budgets.db",autoload:true});
var activitiesDB=new Datastore({filename: "src/backEnd/activitiesAPI/activitiesV1/activities.db",autoload:true});
var activitiesDBV2=new Datastore({filename: "src/backEnd/activitiesAPI/activitiesV2/activities.db",autoload:true});
var activitiesDBV3=new Datastore({filename: "src/backEnd/activitiesAPI/integration/activities.db",autoload:true});
// --> Funciones del servidor
app.listen(port, () =>{ // Cuando el servidor está listo, ejecuta el código interior.
console.log("Server ready listening on port "+port);
});
// Dirname obtiene la carpeta donde se ejecuto npm start (C:\\....).
// Use hace que cuando se llame a lo que sea que esté dentro de /, lo busque en la carpeta public...
app.use("/",express.static(path.join(__dirname + "/public")));
// --> Modulación APIS
var suicideAPI=require("./src/backEnd/suicidesAPI/suicidesV2");
suicideAPI.register(app,suicideDB2);
var suicideAPI=require("./src/backEnd/suicidesAPI/suicidesV1");
suicideAPI.register(app,suicideDB);
var suicide_integration=require("./src/backEnd/suicidesAPI/integration");
suicide_integration.register(app,suicideDB3);
var budgetsAPI = require("./src/backEnd/budgetsAPI/budgetsV1");
budgetsAPI.register(app,budgetsDB);
var budgetsAPIV2 = require("./src/backEnd/budgetsAPI/budgetsV2");
budgetsAPIV2.register(app,budgetsDBV2);
var activitiesAPI = require("./src/backEnd/activitiesAPI/activitiesV1");
activitiesAPI.register(app,activitiesDB);
var activitiesAPIV2 = require("./src/backEnd/activitiesAPI/activitiesV2");
activitiesAPIV2.register(app,activitiesDBV2);
var activities_integration=require("./src/backEnd/activitiesAPI/integration");
activities_integration.register(app,activitiesDBV3);
// Proxys
const request = require("request");
// Parameters
// You can use a shorthand for multiple API endpoints: /api|/other_api
// ----------------- Proxis Javier García --------------------
var pathAnxiety='/api/integration/anxiety_stats';
var apiServerHost = 'https://sos2021-11.herokuapp.com';
app.use(pathAnxiety, function(req, res) {
var url = apiServerHost + req.baseUrl + req.url;
console.log('piped: '+req.baseUrl + req.url);
req.pipe(request(url)).pipe(res);
});
var pathDepression='/api/integration/depression_stats';
var apiServerHost2 = 'http://sos2021-11.herokuapp.com';
app.use(pathDepression, function(req, res) {
var url = apiServerHost2 + req.baseUrl + req.url;
console.log('piped: '+req.baseUrl + req.url);
req.pipe(request(url)).pipe(res);
});
var pathStress='/api/v2/stress_stats';
var apiServerHost3 = 'http://sos2021-11.herokuapp.com';
app.use(pathStress, function(req, res) {
var url = apiServerHost3 + req.baseUrl + req.url;
console.log('piped: '+req.baseUrl + req.url);
req.pipe(request(url)).pipe(res);
});
var pathPoverty='/api/v1/poverty_risks';
var apiServerHost4 = 'http://sos2021-04.herokuapp.com';
app.use(pathPoverty, function(req, res) {
var url = apiServerHost4 + req.baseUrl + req.url;
console.log('piped: '+req.baseUrl + req.url);
req.pipe(request(url)).pipe(res);
});
var pathUnemployment='/api/v2/unemployment-stats';
var apiServerHost5 = 'http://sos2021-23.herokuapp.com';
app.use(pathUnemployment, function(req, res) {
var url = apiServerHost5 + req.baseUrl + req.url;
console.log('piped: '+req.baseUrl + req.url);
req.pipe(request(url)).pipe(res);
});
var pathChildren='/api/v2/children-out-school';
var apiServerHost6 = 'http://sos2021-24.herokuapp.com';
app.use(pathChildren, function(req, res) {
var url = apiServerHost6 + req.baseUrl + req.url;
console.log('piped: '+req.baseUrl + req.url);
req.pipe(request(url)).pipe(res);
});
// --------------------------------------------------------------
var hostUrl = 'http://sos2021-01.herokuapp.com';
app.use("/proxy", function(req, res) {
var url = hostUrl + req.url;
req.pipe(request(url)).pipe(res);
});