Versie module 1 van 26-7

This commit is contained in:
2026-07-26 22:18:52 +02:00
commit 26a820b41a
39 changed files with 3663 additions and 0 deletions
+165
View File
@@ -0,0 +1,165 @@
const bcrypt = require("bcrypt");
const db = require("../config/database");
const HouseholdService = require("../services/HouseholdService");
class AuthController {
registerForm(req, res) {
res.render("auth/register", {
title: "Registreren"
});
}
async register(req, res) {
const {
name,
email,
password
} = req.body;
const existingUser = db.prepare(
"SELECT id FROM users WHERE email = ?"
).get(email);
if (existingUser) {
req.flash(
"error",
"E-mailadres bestaat al"
);
return res.redirect("/register");
}
const passwordHash = await bcrypt.hash(
password,
12
);
const result = db.prepare(`
INSERT INTO users
(
name,
email,
password
)
VALUES (?, ?, ?)
`).run(
name,
email,
passwordHash
);
const userId = result.lastInsertRowid;
HouseholdService.createForUser(
userId,
`${name} huishouden`
);
req.session.userId = userId;
res.redirect("/");
}
loginForm(req, res) {
res.render("auth/login", {
title: "Inloggen"
});
}
async login(req, res) {
const {
email,
password
} = req.body;
const user = db.prepare(
"SELECT * FROM users WHERE email = ?"
).get(email);
if (!user) {
req.flash(
"error",
"Ongeldige gegevens"
);
return res.redirect("/login");
}
const valid = await bcrypt.compare(
password,
user.password
);
if (!valid) {
req.flash(
"error",
"Ongeldige gegevens"
);
return res.redirect("/login");
}
req.session.userId = user.id;
res.redirect("/");
}
logout(req, res) {
req.session.destroy(() => {
res.redirect("/login");
});
}
}
module.exports = new AuthController();
+25
View File
@@ -0,0 +1,25 @@
class DashboardController {
index(req, res) {
res.render(
"dashboard/index",
{
title: "Dashboard",
user: req.user
}
);
}
}
module.exports = new DashboardController();
+15
View File
@@ -0,0 +1,15 @@
class HomeController {
index(req, res) {
res.render("home/index", {
title: "PantryHub"
});
}
}
module.exports = new HomeController();
+21
View File
@@ -0,0 +1,21 @@
class HouseholdController {
index(req,res){
res.render(
"household/index",
{
title:"Huishouden",
user:req.user
}
);
}
}
module.exports =
new HouseholdController();
+35
View File
@@ -0,0 +1,35 @@
const ProductService =
require("../services/ProductService");
class ProductController {
index(req,res) {
const products =
ProductService.getProducts();
res.render(
"products/index",
{
title:"Producten",
products
}
);
}
}
module.exports =
new ProductController();