add of projects router

This commit is contained in:
Giovanni committed 2025-08-31 18:22:58 +02:00
1 parent d75a5590cc
commit 900a17eac5
2 files changed
+54 -1

No files matched your search

+6 -1
View File
@@ -1,7 +1,7 @@
import os import os
from fastapi import FastAPI, HTTPException from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from routers import skills, experiences, experienceTasks from routers import skills, experiences, experienceTasks, projects
app = FastAPI() app = FastAPI()
@@ -36,3 +36,8 @@ app.include_router(
prefix="/api/experienceTasks", prefix="/api/experienceTasks",
tags=["ExperienceTasks"] tags=["ExperienceTasks"]
) )
app.include_router(
projects.router,
prefix="/api/projects",
tags=["Projects"]
)
+48
View File
@@ -0,0 +1,48 @@
# routers/skills.py (sans générateur)
from fastapi import APIRouter, HTTPException
import MySQLdb
from database import get_db_connection
router = APIRouter()
@router.get("/")
def read_projects():
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.description,
p.color,
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()