Fügt die Funktion zum Drehen von Mitgliedsbildern hinzu. Implementiert die Logik zur Bildrotation in MemberService und aktualisiert die entsprechenden Routen und Frontend-Komponenten, um die Benutzeroberfläche für die Bildbearbeitung zu verbessern. Ermöglicht das Drehen von Bildern über die Mitgliederansicht und aktualisiert die Anzeige nach der Bearbeitung.

This commit is contained in:
Torsten Schulz (local)
2025-10-04 01:59:21 +02:00
parent 0cf2351c79
commit 2b1365339e
5 changed files with 244 additions and 8 deletions

View File

@@ -320,6 +320,56 @@ class MemberService {
};
}
}
async rotateMemberImage(userToken, clubId, memberId, direction) {
try {
await checkAccess(userToken, clubId);
const member = await Member.findOne({ where: { id: memberId, clubId: clubId } });
if (!member) {
return { status: 404, response: { success: false, error: 'Member not found in this club' } };
}
const imagePath = path.join('images', 'members', `${memberId}.jpg`);
if (!fs.existsSync(imagePath)) {
return { status: 404, response: { success: false, error: 'Image not found' } };
}
// Read the image
const imageBuffer = await fs.promises.readFile(imagePath);
// Calculate rotation angle (-90 for left, +90 for right)
const rotationAngle = direction === 'left' ? -90 : 90;
// Rotate the image
const rotatedBuffer = await sharp(imageBuffer)
.rotate(rotationAngle)
.jpeg({ quality: 80 })
.toBuffer();
// Save the rotated image
await fs.promises.writeFile(imagePath, rotatedBuffer);
return {
status: 200,
response: {
success: true,
message: `Bild um ${rotationAngle}° gedreht`,
direction: direction,
rotation: rotationAngle
}
};
} catch (error) {
console.error('[rotateMemberImage] - Error:', error);
return {
status: 500,
response: {
success: false,
error: 'Fehler beim Drehen des Bildes: ' + error.message
}
};
}
}
}
export default new MemberService();