var http=require("http"),readline=require("readline");const{config:e}=require("./config"),{check_whitelist:t}=require("./utils"),{serve_resource:r}=require("./utils"),{registerUser:s}=require("./controller"),{loginUser:n}=require("./controller"),{listMonitors:i}=require("./controller"),{newMonitor:o}=require("./controller"),{deleteMonitors:l}=require("./controller"),{scheduler:a}=require("./scheduler"),rl=readline.createInterface({input:process.stdin,output:process.stdout});function server_listener(e,a){var c={stop:!1,country:"N/A",ip:e.socket.remoteAddress};if(t(c),c.stop)a.end("Acess Denied");else{var d=new URL(e.url,`http://${e.headers.host}`),h=d.pathname,p=new URLSearchParams(d.searchParams);if(h.startsWith("/api"))switch(e.socket.parser.incoming.method){case"GET":h.endsWith("/list")?i(e,a):h.endsWith("/logout")&&logoutUser(e,a);break;case"POST":h.endsWith("/register")?s(e,a):h.endsWith("/login")?n(e,a):h.endsWith("/newMonitor")&&o(e,a);break;case"PUT":break;case"DELETE":h.endsWith("/delete")&&l(e,a,JSON.parse("["+p.getAll("id")+"]"))}else r(e,a,c)}}a();var server=http.createServer(server_listener);server.listen(e.node_port),rl.question("Server running (Enter to stop)\n",e=>{server.close(),process.exit(1)});