const UserService = require('../services/UserService'); const UserValidator = require('../validators/UserValidator'); const ErrorHandler = require('../utils/ErrorHandler'); exports.getAllUsers = ErrorHandler.asyncHandler(async (req, res) => { const users = await UserService.getAllUsers(); ErrorHandler.successResponse(res, users, 'Benutzer erfolgreich abgerufen'); }); exports.getUserById = ErrorHandler.asyncHandler(async (req, res) => { UserValidator.validateId(req.params.id); const user = await UserService.getUserById(req.params.id); ErrorHandler.successResponse(res, user, 'Benutzer erfolgreich abgerufen'); }); exports.createUser = ErrorHandler.asyncHandler(async (req, res) => { UserValidator.validateCreateUser(req.body); const user = await UserService.createUser(req.body); ErrorHandler.successResponse(res, user, 'Benutzer erfolgreich erstellt', 201); }); exports.updateUser = ErrorHandler.asyncHandler(async (req, res) => { UserValidator.validateId(req.params.id); UserValidator.validateUpdateUser(req.body); const user = await UserService.updateUser(req.params.id, req.body); ErrorHandler.successResponse(res, user, 'Benutzer erfolgreich aktualisiert'); }); exports.deleteUser = ErrorHandler.asyncHandler(async (req, res) => { UserValidator.validateId(req.params.id); await UserService.deleteUser(req.params.id); ErrorHandler.successResponse(res, null, 'Benutzer erfolgreich gelöscht'); }); // Neue Route für Passwort-Änderung exports.changePassword = ErrorHandler.asyncHandler(async (req, res) => { const { currentPassword, newPassword } = req.body; UserValidator.validateId(req.params.id); UserValidator.validatePasswordChange(currentPassword, newPassword); await UserService.changePassword(req.params.id, currentPassword, newPassword); ErrorHandler.successResponse(res, null, 'Passwort erfolgreich geändert'); });