Files
miriamgemeinde/controllers/authController.js
Torsten Schulz (local) 7861b9cffb Merge-Konflikt aufgelöst: AuthService und ErrorHandler wiederhergestellt
- AuthService mit allen Methoden (register, login, forgotPassword, resetPassword, logout)
- ErrorHandler für zentrale Fehlerbehandlung
- authController.js auf neue Clean Code Architektur umgestellt
- Alle Authentifizierungsendpunkte verwenden jetzt Service Layer Pattern
2025-09-24 11:59:13 +02:00

59 lines
1.8 KiB
JavaScript

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
};