from fastapi import APIRouter, HTTPException import MySQLdb from database import get_db_connection router = APIRouter() @router.get("/") def read_shortProjects(): conn = get_db_connection() if not conn: raise HTTPException(status_code=503, detail="Service de base de données indisponible.") try: with conn.cursor(MySQLdb.cursors.DictCursor) as cursor: sql = """ SELECT p.id, p.title, p.short_description, p.school, p.nb_image, p.image_name, GROUP_CONCAT(DISTINCT s.name ORDER BY s.name SEPARATOR ', ') AS skills FROM projects p LEFT JOIN project_skills ps ON p.id = ps.project_id LEFT JOIN skills s ON ps.skill_id = s.id GROUP BY p.id; """ cursor.execute(sql) result = cursor.fetchall() for project in result: if project['skills']: project['skills'] = project['skills'].split(', ') else: project['skills'] = [] return {"data": result} except MySQLdb.Error as e: raise HTTPException(status_code=500, detail=f"Erreur lors de la requête: {e}") finally: conn.close()