Versie 1.0
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
const CategoryService = require("../services/CategoryService");
|
||||
|
||||
|
||||
class CategoryController {
|
||||
|
||||
|
||||
index(req, res) {
|
||||
|
||||
res.render("categories/index", {
|
||||
title: "Categorieën",
|
||||
categories: CategoryService.getCategories()
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
editForm(req, res) {
|
||||
const categoryId = Number.parseInt(req.params.id, 10);
|
||||
const category = Number.isInteger(categoryId)
|
||||
? CategoryService.getCategory(categoryId)
|
||||
: null;
|
||||
|
||||
if (!category) {
|
||||
req.flash("error", "Categorie niet gevonden.");
|
||||
return res.redirect("/categories");
|
||||
}
|
||||
|
||||
res.render("categories/edit", {
|
||||
title: "Categorie wijzigen",
|
||||
category
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
create(req, res) {
|
||||
const name = (req.body.name || "").trim();
|
||||
const icon = (req.body.icon || "").trim();
|
||||
|
||||
if (!name) {
|
||||
req.flash("error", "Geef een categorienaam op.");
|
||||
return res.redirect("/categories");
|
||||
}
|
||||
|
||||
CategoryService.createCategory({ name, icon });
|
||||
req.flash("success", "Categorie toegevoegd.");
|
||||
res.redirect("/categories");
|
||||
}
|
||||
|
||||
|
||||
update(req, res) {
|
||||
const categoryId = Number.parseInt(req.params.id, 10);
|
||||
const name = (req.body.name || "").trim();
|
||||
const icon = (req.body.icon || "").trim();
|
||||
|
||||
if (!Number.isInteger(categoryId) || !name) {
|
||||
req.flash("error", "Geef een geldige categorienaam op.");
|
||||
return res.redirect("/categories");
|
||||
}
|
||||
|
||||
const result = CategoryService.updateCategory(categoryId, { name, icon });
|
||||
|
||||
if (result.changes === 0) {
|
||||
req.flash("error", "Categorie niet gevonden.");
|
||||
return res.redirect("/categories");
|
||||
}
|
||||
|
||||
req.flash("success", "Categorie gewijzigd.");
|
||||
res.redirect("/categories");
|
||||
}
|
||||
|
||||
|
||||
remove(req, res) {
|
||||
const categoryId = Number.parseInt(req.params.id, 10);
|
||||
|
||||
if (!Number.isInteger(categoryId)) {
|
||||
req.flash("error", "Categorie niet gevonden.");
|
||||
return res.redirect("/categories");
|
||||
}
|
||||
|
||||
if (CategoryService.categoryHasProducts(categoryId)) {
|
||||
req.flash(
|
||||
"error",
|
||||
"Deze categorie is nog aan producten gekoppeld en kan niet worden verwijderd."
|
||||
);
|
||||
return res.redirect("/categories");
|
||||
}
|
||||
|
||||
const result = CategoryService.deleteCategory(categoryId);
|
||||
|
||||
if (result.changes === 0) {
|
||||
req.flash("error", "Categorie niet gevonden.");
|
||||
return res.redirect("/categories");
|
||||
}
|
||||
|
||||
req.flash("success", "Categorie verwijderd.");
|
||||
res.redirect("/categories");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
module.exports = new CategoryController();
|
||||
Reference in New Issue
Block a user