Favorieten toegevoegd aan de navigatiebalk en sidebar.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
const FavoriteService = require("../services/FavoriteService");
|
||||
|
||||
class FavoriteController {
|
||||
index(req, res) {
|
||||
const favorites = FavoriteService.getFavorites(req.user.id, req.user.household_id);
|
||||
|
||||
res.locals.title = "Favorieten";
|
||||
res.render("favorites/index", {
|
||||
favorites,
|
||||
user: req.user
|
||||
});
|
||||
}
|
||||
|
||||
toggle(req, res) {
|
||||
const productId = Number.parseInt(req.params.id, 10);
|
||||
|
||||
if (!Number.isInteger(productId)) {
|
||||
req.flash("error", "Product niet gevonden.");
|
||||
return res.redirect("/products");
|
||||
}
|
||||
|
||||
const isFavorite = FavoriteService.toggleFavorite(req.user.id, productId, req.user.household_id);
|
||||
if (!isFavorite && !FavoriteService.getFavoriteIds(req.user.id, req.user.household_id).has(productId)) {
|
||||
req.flash("error", "Product niet gevonden.");
|
||||
return res.redirect("/products");
|
||||
}
|
||||
|
||||
req.flash("success", isFavorite ? "Product toegevoegd aan favorieten." : "Product verwijderd uit favorieten.");
|
||||
res.redirect("/products");
|
||||
}
|
||||
|
||||
remove(req, res) {
|
||||
const productId = Number.parseInt(req.params.productId, 10);
|
||||
|
||||
if (!Number.isInteger(productId)) {
|
||||
req.flash("error", "Product niet gevonden.");
|
||||
return res.redirect("/favorites");
|
||||
}
|
||||
|
||||
const removed = FavoriteService.removeFavorite(req.user.id, productId, req.user.household_id);
|
||||
if (!removed) {
|
||||
req.flash("error", "Product niet gevonden in favorieten.");
|
||||
return res.redirect("/favorites");
|
||||
}
|
||||
|
||||
req.flash("success", "Product verwijderd uit favorieten.");
|
||||
res.redirect("/favorites");
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new FavoriteController();
|
||||
Reference in New Issue
Block a user