import { DBAccess } from '../db/index.js'; import { Router } from 'express'; const router = Router(); router.get('/', async function (req, res, next) { if (req.session.userid) { res.redirect("/"); } else { res.render("gateway/index", { title: "Гейтвей" }); } }); router.get("/logout", async function (req, res, next) { req.session.destroy(e => e && console.error(e)); res.redirect("/"); }); router.post("/login", async function (req, res, next) { const { login, password } = req.body; const voter = await DBAccess.validateVoter(login, password); console.dir(voter); if (voter) { req.session.userid = voter.id; req.session.login = voter.login; req.session.isAdmin = voter.is_admin; req.session.vgroup_id = voter.vgroup_id; req.session.full_name = voter.full_name; res.redirect("/"); } else { res.render("gateway/index", { title: "Гейтвей", flashes: ["Неверный логин или пароль"] }); } }); router.post("/register", async function (req, res, next) { const { login, password, full_name } = req.body; if (!login || !password || !full_name || login.length < 5 || password.length < 4 || full_name.length < 4) { res.render("gateway/index", { title: "Гейтвей", flashes: ["Проверьте данные"] }); } else if (await DBAccess.findVoterByLogin(login)) { res.render("gateway/index", { title: "Гейтвей", flashes: ["Пользователь с таким логином уже существует"] }); } else { const firstUser = await DBAccess.countVoters() === 0; const voter = await DBAccess.createVoter(login, password, full_name, firstUser); console.dir(voter); req.session.userid = voter.id; req.session.login = voter.login; req.session.isAdmin = voter.is_admin; req.session.vgroup_id = voter.vgroup_id; req.session.full_name = voter.full_name; res.redirect("/"); } }); export default router;