import { Request, Response } from 'express'; import { ThemeService, ThemeData } from '../services/theme.service'; export class ThemeController { // Créer un nouveau thème static async createTheme(req: Request, res: Response) { try { const themeData: ThemeData = req.body; const theme = await ThemeService.createTheme(themeData); res.status(201).json(theme); } catch (error) { res.status(500).json({ error: 'Erreur lors de la création du thème' }); } } // Récupérer tous les thèmes static async getAllThemes(req: Request, res: Response) { try { const themes = await ThemeService.getAllThemes(); res.json(themes); } catch (error) { res.status(500).json({ error: 'Erreur lors de la récupération des thèmes' }); } } // Récupérer le thème actif static async getActiveTheme(req: Request, res: Response) { try { const theme = await ThemeService.getActiveTheme(); if (!theme) { return res.status(404).json({ error: 'Aucun thème actif trouvé' }); } res.json(theme); } catch (error) { res.status(500).json({ error: 'Erreur lors de la récupération du thème actif' }); } } // Activer un thème static async activateTheme(req: Request, res: Response) { try { const { themeId } = req.params; const theme = await ThemeService.activateTheme(themeId); res.json(theme); } catch (error) { res.status(500).json({ error: 'Erreur lors de l\'activation du thème' }); } } // Mettre à jour un thème static async updateTheme(req: Request, res: Response) { try { const { themeId } = req.params; const themeData: Partial = req.body; const theme = await ThemeService.updateTheme(themeId, themeData); res.json(theme); } catch (error) { res.status(500).json({ error: 'Erreur lors de la mise à jour du thème' }); } } // Supprimer un thème static async deleteTheme(req: Request, res: Response) { try { const { themeId } = req.params; await ThemeService.deleteTheme(themeId); res.status(204).send(); } catch (error) { res.status(500).json({ error: 'Erreur lors de la suppression du thème' }); } } }