From bd97946caa8639d4bf49364484c818f98ed5abbd Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Fri, 29 Aug 2025 23:21:50 +0200 Subject: [PATCH] fix skills router --- database.py | 13 ++++++++----- routers/skills.py | 12 ++++++------ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/database.py b/database.py index 1a78c13..a674b6f 100644 --- a/database.py +++ b/database.py @@ -1,11 +1,12 @@ +# database.py import os import MySQLdb -from fastapi import HTTPException from dotenv import load_dotenv load_dotenv() def get_db_connection(): + conn = None try: conn = MySQLdb.connect( user=os.getenv("DB_USER"), @@ -13,9 +14,11 @@ def get_db_connection(): host=os.getenv("DB_HOST"), db=os.getenv("DB_NAME"), charset='utf8mb4', - cursorclass=MySQLdb.cursors.DictCursor + cursorclass=MySQLdb.cursors.DictCursor ) - return conn + yield conn except MySQLdb.Error as e: - print(f"Erreur de connexion à la base de données : {e}") - raise HTTPException(status_code=500, detail="Erreur interne du serveur lors de la connexion à la base de données.") \ No newline at end of file + print(f"Erreur de base de données : {e}") + finally: + if conn: + conn.close() \ No newline at end of file diff --git a/routers/skills.py b/routers/skills.py index 0157fd3..fca89cb 100644 --- a/routers/skills.py +++ b/routers/skills.py @@ -1,12 +1,14 @@ -from fastapi import APIRouter, HTTPException +from fastapi import APIRouter, HTTPException, Depends import MySQLdb from database import get_db_connection router = APIRouter() @router.get("/") -def read_skills(): - conn = get_db_connection() +def read_skills(conn = Depends(get_db_connection)): + if not conn: + raise HTTPException(status_code=503, detail="Service de base de données indisponible.") + try: with conn.cursor() as cursor: sql = "SELECT * FROM skills;" @@ -14,6 +16,4 @@ def read_skills(): result = cursor.fetchall() return {"data": result} except MySQLdb.Error as e: - raise HTTPException(status_code=500, detail=f"Erreur base de données: {e}") - finally: - conn.close() \ No newline at end of file + raise HTTPException(status_code=500, detail=f"Erreur lors de la requête: {e}") \ No newline at end of file