Werk hoofdapplicatie bij

Legt de bestaande wijzigingen in de hoofdworktree vast voordat de laatste worktree wordt gemerged.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-08-07 20:45:36 +02:00
parent 26a820b41a
commit c07d503d83
41 changed files with 1837 additions and 313 deletions
+43
View File
@@ -0,0 +1,43 @@
const router = require("express").Router();
const auth = require("../middleware/auth");
const ProductRepository = require("../repositories/ProductRepository");
const ShoppingListRepository = require("../repositories/ShoppingListRepository");
// Get all products
router.get("/products", auth, (req, res) => {
const products = ProductRepository.getAll();
res.json(products);
});
// Get shopping lists for household
router.get("/lists", auth, (req, res) => {
const lists = ShoppingListRepository.getByHousehold(
req.user.household_id
);
res.json(lists);
});
// Get shopping list items
router.get("/lists/:id/items", auth, (req, res) => {
const list = ShoppingListRepository.getById(req.params.id);
if (!list || list.household_id !== req.user.household_id) {
return res.status(403).json({ error: "Not authorized" });
}
const items = ShoppingListRepository.getItems(req.params.id);
res.json(items);
});
module.exports = router;
+24 -2
View File
@@ -4,9 +4,25 @@ const router = require("express").Router();
const AuthController =
require("../controllers/AuthController");
const HomeController =
require("../controllers/HomeController");
// Home page
router.get(
"/home",
HomeController.index
);
// Register
router.get(
"/register",
(req, res, next) => {
if (req.user) {
return res.redirect("/");
}
next();
},
AuthController.registerForm
);
@@ -17,9 +33,15 @@ router.post(
);
// Login
router.get(
"/login",
(req, res, next) => {
if (req.user) {
return res.redirect("/");
}
next();
},
AuthController.loginForm
);
@@ -30,7 +52,7 @@ router.post(
);
// Logout
router.get(
"/logout",
AuthController.logout
+45 -6
View File
@@ -11,8 +11,8 @@ require("../controllers/HouseholdController");
const ProductController =
require("../controllers/ProductController");
console.log("AUTH:", auth);
console.log("DASHBOARD INDEX:", DashboardController.index);
const ShoppingListController =
require("../controllers/ShoppingListController");
router.get(
"/",
@@ -20,6 +20,42 @@ router.get(
DashboardController.index
);
router.get(
"/lists",
auth,
ShoppingListController.index.bind(ShoppingListController)
);
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)
);
router.get(
"/household",
auth,
@@ -27,12 +63,15 @@ router.get(
);
router.get(
"/products",
auth,
ProductController.index.bind(ProductController)
);
router.post(
"/products",
auth,
ProductController.create.bind(ProductController)
);
module.exports = router;