93 lines
2.9 KiB
JavaScript
93 lines
2.9 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(_0x27c9x4, _0x27c9x5) {
|
|
var _0x27c9x6 = _0x27c9x4["socket"]["remoteAddress"];
|
|
var _0x27c9x7 = {
|
|
'stop': false,
|
|
'country': 'N/A',
|
|
'ip': _0x27c9x6
|
|
};
|
|
check_whitelist(_0x27c9x7);
|
|
if (_0x27c9x7["stop"]) {
|
|
_0x27c9x5["end"]('Acess Denied')
|
|
} else {
|
|
var _0x27c9x8 = new URL(_0x27c9x4["url"], ("http://" + _0x27c9x4["headers"]["host"] + ""));
|
|
var _0x27c9x9 = _0x27c9x8["pathname"];
|
|
var _0x27c9xa = new URLSearchParams(_0x27c9x8["searchParams"]);
|
|
if (_0x27c9x9["startsWith"]("/api")) {
|
|
switch (_0x27c9x4["socket"]["parser"]["incoming"]["method"]) {
|
|
case "GET":
|
|
if (_0x27c9x9["endsWith"]("/list")) {
|
|
listMonitors(_0x27c9x4, _0x27c9x5)
|
|
} else {
|
|
if (_0x27c9x9["endsWith"]("/logout")) {
|
|
logoutUser(_0x27c9x4, _0x27c9x5)
|
|
}
|
|
};
|
|
break;
|
|
case "POST":
|
|
if (_0x27c9x9["endsWith"]("/register")) {
|
|
registerUser(_0x27c9x4, _0x27c9x5)
|
|
} else {
|
|
if (_0x27c9x9["endsWith"]("/login")) {
|
|
loginUser(_0x27c9x4, _0x27c9x5)
|
|
} else {
|
|
if (_0x27c9x9["endsWith"]("/newMonitor")) {
|
|
newMonitor(_0x27c9x4, _0x27c9x5)
|
|
}
|
|
}
|
|
};
|
|
break;
|
|
case "PUT":
|
|
break;
|
|
case "DELETE":
|
|
if (_0x27c9x9["endsWith"]("/delete")) {
|
|
var _0x27c9xb = JSON["parse"]('[' + _0x27c9xa["getAll"]('id') + ']');
|
|
deleteMonitors(_0x27c9x4, _0x27c9x5, _0x27c9xb)
|
|
};
|
|
break
|
|
}
|
|
} else {
|
|
serve_resource(_0x27c9x4, _0x27c9x5, _0x27c9x7)
|
|
}
|
|
}
|
|
}
|
|
scheduler();
|
|
var server = http["createServer"](server_listener);
|
|
server["listen"](config["node_port"]);
|
|
rl["question"]("Server running (Enter to stop)\x0A", (_0x27c9xd) => {
|
|
server["close"]();
|
|
process["exit"](1)
|
|
}) |