73 lines
2.0 KiB
JavaScript
Executable File
73 lines
2.0 KiB
JavaScript
Executable File
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);
|
|
//API calls
|
|
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);
|
|
});
|
|
|
|
|