Files
stechuhr3/backend/src/controllers/PasswordController.js

48 lines
1.3 KiB
JavaScript
Executable File

const PasswordService = require('../services/PasswordService');
/**
* Controller für Passwort-Verwaltung
* Verarbeitet HTTP-Requests und delegiert an PasswordService
*/
class PasswordController {
/**
* Ändert das Passwort
*/
async changePassword(req, res) {
try {
const userId = req.user?.id || 1;
const { oldPassword, newPassword, confirmPassword } = req.body;
if (!oldPassword || !newPassword || !confirmPassword) {
return res.status(400).json({
message: 'Alle Felder sind erforderlich'
});
}
if (newPassword !== confirmPassword) {
return res.status(400).json({
message: 'Die Passwörter stimmen nicht überein'
});
}
await PasswordService.changePassword(userId, oldPassword, newPassword);
res.json({ message: 'Passwort erfolgreich geändert' });
} catch (error) {
console.error('Fehler beim Ändern des Passworts:', error);
// Spezifische Fehlermeldungen
if (error.message.includes('alte Passwort')) {
return res.status(401).json({ message: error.message });
}
res.status(500).json({
message: error.message || 'Fehler beim Ändern des Passworts'
});
}
}
}
module.exports = new PasswordController();