const router = require("express").Router(); const multer = require("multer"); const upload = multer({ storage: multer.memoryStorage(), limits: { fileSize: 2 * 1024 * 1024 } }); function uploadCsv(req, res, next) { upload.single("file")(req, res, (error) => { if (error) { req.flash("error", "Het CSV-bestand is te groot of ongeldig."); return res.redirect("/products"); } next(); }); } const auth = require("../middleware/auth"); const DashboardController = require("../controllers/DashboardController"); const HouseholdController = require("../controllers/HouseholdController"); const ProductController = require("../controllers/ProductController"); const CategoryController = require("../controllers/CategoryController"); const ShoppingListController = require("../controllers/ShoppingListController"); const MenuController = require("../controllers/MenuController"); router.get( "/", auth, DashboardController.index ); router.get( "/household", auth, HouseholdController.index.bind(HouseholdController) ); router.get( "/products", auth, ProductController.index.bind(ProductController) ); router.get( "/categories", auth, CategoryController.index.bind(CategoryController) ); router.post( "/categories", auth, CategoryController.create.bind(CategoryController) ); router.get( "/categories/:id/edit", auth, CategoryController.editForm.bind(CategoryController) ); router.post( "/categories/:id", auth, CategoryController.update.bind(CategoryController) ); router.post( "/categories/:id/delete", auth, CategoryController.remove.bind(CategoryController) ); router.post( "/products", auth, ProductController.create.bind(ProductController) ); router.post( "/products/import", auth, uploadCsv, ProductController.import.bind(ProductController) ); router.get( "/products/:id/edit", auth, ProductController.editForm.bind(ProductController) ); router.post( "/products/:id", auth, ProductController.update.bind(ProductController) ); router.post( "/products/:id/delete", auth, ProductController.remove.bind(ProductController) ); router.get( "/lists", auth, ShoppingListController.index.bind(ShoppingListController) ); router.get( "/menu", auth, MenuController.index.bind(MenuController) ); router.post( "/menu/generate", auth, MenuController.generate.bind(MenuController) ); router.post( "/menu/add", auth, MenuController.addToList.bind(MenuController) ); router.post( "/lists", auth, ShoppingListController.create.bind(ShoppingListController) ); router.get( "/lists/:id", auth, ShoppingListController.show.bind(ShoppingListController) ); router.post( "/lists/:id/items", auth, ShoppingListController.addItem.bind(ShoppingListController) ); router.post( "/lists/:id/items/:itemId/toggle", auth, ShoppingListController.toggleItem.bind(ShoppingListController) ); router.delete( "/lists/:id/items/:itemId", auth, ShoppingListController.deleteItem.bind(ShoppingListController) ); module.exports = router;