const AuthService = require('../services/AuthService'); const ErrorHandler = require('../utils/ErrorHandler'); /** * Controller für Authentifizierungsendpunkte */ class AuthController { /** * Benutzerregistrierung */ static register = ErrorHandler.asyncHandler(async (req, res) => { const result = await AuthService.register(req.body); ErrorHandler.successResponse(res, result, result.message, 201); }); /** * Benutzeranmeldung */ static login = ErrorHandler.asyncHandler(async (req, res) => { const { email, password } = req.body; const result = await AuthService.login(email, password); ErrorHandler.successResponse(res, result, result.message); }); /** * Passwort vergessen */ static forgotPassword = ErrorHandler.asyncHandler(async (req, res) => { const result = await AuthService.forgotPassword(req.body.email); ErrorHandler.successResponse(res, result, result.message); }); /** * Passwort zurücksetzen */ static resetPassword = ErrorHandler.asyncHandler(async (req, res) => { const result = await AuthService.resetPassword(req.body.token, req.body.password); ErrorHandler.successResponse(res, result, result.message); }); /** * Benutzerabmeldung */ static logout = ErrorHandler.asyncHandler(async (req, res) => { const authHeader = req.header('Authorization'); const token = authHeader ? authHeader.replace('Bearer ', '') : null; const result = await AuthService.logout(token); ErrorHandler.successResponse(res, result, result.message); }); } // Export der statischen Methoden für die Routen module.exports = { register: AuthController.register, login: AuthController.login, forgotPassword: AuthController.forgotPassword, resetPassword: AuthController.resetPassword, logout: AuthController.logout };