66 lines
2.4 KiB
JavaScript
66 lines
2.4 KiB
JavaScript
var http = require('http');
|
|
var readline = require('readline');
|
|
const { config } = require('./config');
|
|
const { check_whitelist } = require('./utils');
|
|
const { serve_resource } = require('./utils');
|
|
const { registerUser } = require('./controller');
|
|
const { loginUser } = require('./controller');
|
|
const { listMonitors } = require('./controller');
|
|
const { newMonitor } = require('./controller');
|
|
const { deleteMonitors } = require('./controller');
|
|
const { scheduler } = require('./scheduler');
|
|
const rl = readline.createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout
|
|
});
|
|
function server_listener(request, response) {
|
|
var ip = request.socket.remoteAddress;
|
|
var whitelist = { 'stop': false, 'country': 'N/A', 'ip': ip };
|
|
check_whitelist(whitelist);
|
|
|
|
if (whitelist.stop) {
|
|
response.end('Acess Denied');
|
|
}
|
|
|
|
else {
|
|
var url = new URL(request.url, `http://${request.headers.host}`);
|
|
var path = url.pathname
|
|
var params = new URLSearchParams(url.searchParams);
|
|
if (path.startsWith("/api")) {
|
|
switch (request.socket.parser.incoming.method) {
|
|
case "GET":
|
|
if (path.endsWith("/list"))
|
|
listMonitors(request, response);
|
|
else if (path.endsWith("/logout"))
|
|
logoutUser(request, response);
|
|
break;
|
|
case "POST":
|
|
if (path.endsWith("/register"))
|
|
registerUser(request, response);
|
|
else if (path.endsWith("/login"))
|
|
loginUser(request, response);
|
|
else if (path.endsWith("/newMonitor"))
|
|
newMonitor(request, response);
|
|
break;
|
|
case "PUT":
|
|
break;
|
|
case "DELETE":
|
|
if (path.endsWith("/delete")) {
|
|
var idArray = JSON.parse('[' + params.getAll('id') + ']');
|
|
deleteMonitors(request, response, idArray);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
serve_resource(request, response, whitelist);
|
|
}
|
|
}
|
|
}
|
|
scheduler();
|
|
var server = http.createServer(server_listener);
|
|
server.listen(config.node_port);
|
|
rl.question("Server running (Enter to stop)\n", (answer) => {
|
|
server.close();
|
|
process.exit(1);
|
|
}); |