fix: integratie user + errors gefixt zodat het runt + format

This commit is contained in:
Gabriellvl 2025-03-09 23:59:31 +01:00
parent 6c4ea0eefb
commit 1b096b411b
55 changed files with 858 additions and 594 deletions

View file

@ -1,30 +1,29 @@
import { Request, Response } from 'express';
import { UserService } from "../services/users.js";
import {UserDTO} from "../interfaces/user.js";
import {User} from "../entities/users/user.entity.js";
import { UserService } from '../services/users.js';
import { UserDTO } from '../interfaces/user.js';
import { User } from '../entities/users/user.entity.js';
export async function getAllUsersHandler<T extends User>(
req: Request,
res: Response,
service: UserService<T>
): Promise<void> {
): Promise<void> {
try {
const full = req.query.full === 'true';
let users: UserDTO[] | string[] = full
const users: UserDTO[] | string[] = full
? await service.getAllUsers()
: await service.getAllUserIds();
if (!users){
if (!users) {
res.status(404).json({ error: `Users not found.` });
return;
}
res.status(201).json(users);
} catch (error) {
console.error("❌ Error fetching users:", error);
res.status(500).json({ error: "Internal server error" });
console.error('❌ Error fetching users:', error);
res.status(500).json({ error: 'Internal server error' });
}
}
@ -32,7 +31,7 @@ export async function getUserHandler<T extends User>(
req: Request,
res: Response,
service: UserService<T>
): Promise<void> {
): Promise<void> {
try {
const username = req.params.username as string;
@ -43,16 +42,17 @@ export async function getUserHandler<T extends User>(
const user = await service.getUserByUsername(username);
if (!user){
res.status(404).json({ error: `User with username '${username}' not found.` });
if (!user) {
res.status(404).json({
error: `User with username '${username}' not found.`,
});
return;
}
res.status(201).json(user);
} catch (error) {
console.error("❌ Error fetching users:", error);
res.status(500).json({ error: "Internal server error" });
console.error('❌ Error fetching users:', error);
res.status(500).json({ error: 'Internal server error' });
}
}
@ -63,23 +63,25 @@ export async function createUserHandler<T extends User>(
UserClass: new () => T
) {
try {
console.log("req", req)
console.log('req', req);
const userData = req.body as UserDTO;
if (!userData.username || !userData.firstName || !userData.lastName) {
res.status(400).json({ error: "Missing required fields: username, firstName, lastName" });
res.status(400).json({
error: 'Missing required fields: username, firstName, lastName',
});
return;
}
const newUser = await service.createUser(userData, UserClass);
res.status(201).json(newUser);
} catch (error) {
console.error("❌ Error creating user:", error);
res.status(500).json({ error: "Internal server error" });
console.error('❌ Error creating user:', error);
res.status(500).json({ error: 'Internal server error' });
}
}
export async function deleteUserHandler<T extends User> (
export async function deleteUserHandler<T extends User>(
req: Request,
res: Response,
service: UserService<T>
@ -88,19 +90,21 @@ export async function deleteUserHandler<T extends User> (
const username = req.params.username;
if (!username) {
res.status(400).json({ error: "Missing required field: username" });
res.status(400).json({ error: 'Missing required field: username' });
return;
}
const deletedUser = await service.deleteUser(username);
if (!deletedUser) {
res.status(404).json({ error: `User with username '${username}' not found.` });
res.status(404).json({
error: `User with username '${username}' not found.`,
});
return;
}
res.status(200).json(deletedUser);
} catch (error) {
console.error("❌ Error deleting user:", error);
res.status(500).json({ error: "Internal server error" });
console.error('❌ Error deleting user:', error);
res.status(500).json({ error: 'Internal server error' });
}
}