227 lines
4.2 KiB
JavaScript
227 lines
4.2 KiB
JavaScript
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 FavoriteController = require("../controllers/FavoriteController");
|
|
|
|
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.post(
|
|
"/products/:id/favorite",
|
|
auth,
|
|
FavoriteController.toggle.bind(FavoriteController)
|
|
);
|
|
|
|
router.get(
|
|
"/favorites",
|
|
auth,
|
|
FavoriteController.index.bind(FavoriteController)
|
|
);
|
|
|
|
router.post(
|
|
"/favorites/:productId/delete",
|
|
auth,
|
|
FavoriteController.remove.bind(FavoriteController)
|
|
);
|
|
|
|
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.post(
|
|
"/lists/:id/favorites/add",
|
|
auth,
|
|
ShoppingListController.addFavoriteProducts.bind(ShoppingListController)
|
|
);
|
|
|
|
router.post(
|
|
"/lists/:id/items/clear",
|
|
auth,
|
|
ShoppingListController.clearItems.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.post(
|
|
"/lists/:id/items/:itemId/amount",
|
|
auth,
|
|
ShoppingListController.updateItemAmount.bind(ShoppingListController)
|
|
);
|
|
|
|
router.post(
|
|
"/lists/:id/items/reset",
|
|
auth,
|
|
ShoppingListController.resetItems.bind(ShoppingListController)
|
|
);
|
|
|
|
router.delete(
|
|
"/lists/:id/items/:itemId",
|
|
auth,
|
|
ShoppingListController.deleteItem.bind(ShoppingListController)
|
|
);
|
|
|
|
router.delete(
|
|
"/lists/:id",
|
|
auth,
|
|
ShoppingListController.deleteList.bind(ShoppingListController)
|
|
);
|
|
|
|
|
|
module.exports = router; |