Files
2026-05-20 10:35:05 +02:00

61 lines
1.6 KiB
Python

# ============================================================
# config.py — Configuration & connexion SQL Server
# Data Sentinel | COYAUD Anthony | 2026
# ============================================================
import pyodbc
from contextlib import contextmanager
class Config:
# Chaîne de connexion SQL Server
DB_CONNECTION_STRING = (
"Driver={ODBC Driver 17 for SQL Server};"
"Server=LaptopCA\\SQLEXPRESS;"
"Database=DataSentinel;"
"Trusted_Connection=yes;"
)
# Paramètres API
API_TITLE = "Data Sentinel API"
API_VERSION = "1.0.0"
API_DESCRIPTION = "API de monitoring de la qualité des données — XEFI"
# Sécurité JWT
SECRET_KEY = "data-sentinel-secret-change-in-prod"
ALGORITHM = "HS256"
TOKEN_EXPIRE_MINUTES = 60
# ----------------------------------------------------------------
# Connexion — retourne un curseur pyodbc via context manager
# ----------------------------------------------------------------
def get_connection() -> pyodbc.Connection:
"""Ouvre une connexion SQL Server et la retourne."""
return pyodbc.connect(Config.DB_CONNECTION_STRING)
@contextmanager
def get_cursor():
"""
Context manager : ouvre connexion + curseur, commit ou rollback,
ferme proprement.
Usage :
with get_cursor() as cursor:
cursor.execute("SELECT ...")
rows = cursor.fetchall()
"""
conn = get_connection()
cursor = conn.cursor()
try:
yield cursor
conn.commit()
except Exception:
conn.rollback()
raise
finally:
cursor.close()
conn.close()