const { Image } = require('../models'); const { v4: uuidv4 } = require('uuid'); const multer = require('multer'); const path = require('path'); const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, 'public/images/uploads'); }, filename: (req, file, cb) => { const uniqueSuffix = `${uuidv4()}${path.extname(file.originalname)}`; cb(null, uniqueSuffix); } }); const upload = multer({ storage }); exports.uploadImage = upload.single('image'); exports.saveImageDetails = async (req, res) => { try { const { title, description, pageId } = req.body; const filename = req.file.filename; const newImage = await Image.create({ id: uuidv4(), filename, title, description, pageId: pageId || null }); res.status(201).json(newImage); } catch (error) { console.error('Fehler beim Speichern des Bildes:', error); res.status(500).send('Fehler beim Speichern des Bildes'); } }; exports.getImages = async (req, res) => { try { const images = await Image.findAll(); res.status(200).json(images); } catch (error) { console.error('Fehler beim Abrufen der Bilder:', error); res.status(500).send('Fehler beim Abrufen der Bilder'); } }; exports.getImagesByPage = async (req, res) => { try { const { pageId } = req.params; const images = await Image.findAll({ where: { pageId } }); res.status(200).json(images); } catch (error) { console.error('Fehler beim Abrufen der Bilder:', error); res.status(500).send('Fehler beim Abrufen der Bilder'); } }; exports.getImageById = async (req, res) => { try { const { id } = req.params; const image = await Image.findByPk(id); if (image) { res.status(200).json(image); } else { res.status(404).send('Bild nicht gefunden'); } } catch (error) { console.error('Fehler beim Abrufen des Bildes:', error); res.status(500).send('Fehler beim Abrufen des Bildes'); } }; exports.updateImage = async (req, res) => { try { const { id } = req.params; const { title, description } = req.body; const image = await Image.findByPk(id); if (!image) { return res.status(404).json({ error: 'Bild nicht gefunden' }); } image.title = title; image.description = description; await image.save(); res.json(image); } catch (error) { console.error('Fehler beim Aktualisieren des Bildes:', error); res.status(500).json({ error: 'Fehler beim Aktualisieren des Bildes' }); } };