const express = require('express'); const router = express.Router(); const AuthController = require('../Controllers/AuthController'); const NoteController = require('../Controllers/NoteController'); const CategoryController = require('../Controllers/CategoryController'); const jwt = require('jsonwebtoken'); // Middleware ตรวจสอบการเข้าสู่ระบบแบบง่าย const webAuth = (req, res, next) => { const token = req.cookies ? req.cookies['auth-token'] : null; if (!token) { return res.redirect('/'); } try { const verified = jwt.verify(token, process.env.TOKEN_SECRET); req.user = verified; next(); } catch (err) { res.redirect('/'); } }; // Login routes router.get("/", AuthController.showLoginPage); router.post("/", AuthController.login); router.post("/login", AuthController.login); // Register routes router.get("/register", AuthController.showRegisterPage); router.post("/register", AuthController.signup); router.post("/signup", AuthController.signup); // Logout route router.post("/logout", (req, res, next) => { const token = req.cookies ? req.cookies['auth-token'] : null; if (!token) { return res.redirect('/'); } next(); }, AuthController.logout); // Dashboard & Notes routes router.get("/dashboard", webAuth, NoteController.index); router.post("/dashboard", webAuth, NoteController.index); router.get("/dashboard/search", webAuth, NoteController.search); router.get("/dashboard/my-notes", webAuth, NoteController.myNotes); router.post("/dashboard/create", webAuth, NoteController.create); router.post("/dashboard/update", webAuth, NoteController.update); router.post("/dashboard/update/:id", webAuth, NoteController.update); router.post("/dashboard/:id/update", webAuth, NoteController.update); router.get("/dashboard/:id/delete", webAuth, NoteController.delete); // Categories routes router.get("/categories", webAuth, CategoryController.index); router.post("/categories", webAuth, CategoryController.index); router.post("/categories/create", webAuth, CategoryController.create); router.post("/categories/update", webAuth, CategoryController.update); router.post("/categories/update/:id", webAuth, CategoryController.update); router.post("/categories/:id/update", webAuth, CategoryController.update); router.get("/categories/:id/delete", webAuth, CategoryController.delete); module.exports = router;