fix skills router

This commit is contained in:
Giovanni committed 2025-08-29 23:21:50 +02:00
1 parent 4144586b5c
commit bd97946caa
2 files changed
+14 -11

No files matched your search

+8 -5
View File
@@ -1,11 +1,12 @@
# database.py
import os import os
import MySQLdb import MySQLdb
from fastapi import HTTPException
from dotenv import load_dotenv from dotenv import load_dotenv
load_dotenv() load_dotenv()
def get_db_connection(): def get_db_connection():
conn = None
try: try:
conn = MySQLdb.connect( conn = MySQLdb.connect(
user=os.getenv("DB_USER"), user=os.getenv("DB_USER"),
@@ -13,9 +14,11 @@ def get_db_connection():
host=os.getenv("DB_HOST"), host=os.getenv("DB_HOST"),
db=os.getenv("DB_NAME"), db=os.getenv("DB_NAME"),
charset='utf8mb4', charset='utf8mb4',
cursorclass=MySQLdb.cursors.DictCursor cursorclass=MySQLdb.cursors.DictCursor
) )
return conn yield conn
except MySQLdb.Error as e: except MySQLdb.Error as e:
print(f"Erreur de connexion à la base de données : {e}") print(f"Erreur de base de données : {e}")
raise HTTPException(status_code=500, detail="Erreur interne du serveur lors de la connexion à la base de données.") finally:
if conn:
conn.close()
+6 -6
View File
@@ -1,12 +1,14 @@
from fastapi import APIRouter, HTTPException from fastapi import APIRouter, HTTPException, Depends
import MySQLdb import MySQLdb
from database import get_db_connection from database import get_db_connection
router = APIRouter() router = APIRouter()
@router.get("/") @router.get("/")
def read_skills(): def read_skills(conn = Depends(get_db_connection)):
conn = get_db_connection() if not conn:
raise HTTPException(status_code=503, detail="Service de base de données indisponible.")
try: try:
with conn.cursor() as cursor: with conn.cursor() as cursor:
sql = "SELECT * FROM skills;" sql = "SELECT * FROM skills;"
@@ -14,6 +16,4 @@ def read_skills():
result = cursor.fetchall() result = cursor.fetchall()
return {"data": result} return {"data": result}
except MySQLdb.Error as e: except MySQLdb.Error as e:
raise HTTPException(status_code=500, detail=f"Erreur base de données: {e}") raise HTTPException(status_code=500, detail=f"Erreur lors de la requête: {e}")
finally:
conn.close()