Files
Gestion_sondes/utils/db.py
2025-05-30 16:13:03 +02:00

65 lines
1.7 KiB
Python

import mysql.connector
import os
from dotenv import load_dotenv
load_dotenv()
def verifier_utilisateur_commun(login, password):
conn = get_connection()
cursor = conn.cursor(dictionary=True)
query = """
SELECT NomUtilisateur FROM Commun.AccesUtilisateurs
WHERE NomUtilisateur = %s
AND MotDePasse = %s
AND (DateExpiration IS NULL OR DateExpiration >= CURDATE())
"""
cursor.execute(query, (login, password))
user = cursor.fetchone()
cursor.close()
conn.close()
return user # None si non trouvé
def get_connection():
return mysql.connector.connect(
host=os.getenv("DB_HOST"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
database=os.getenv("DB_NAME")
)
def get_latest_chaufferie():
conn = get_connection()
cursor = conn.cursor(dictionary=True)
query = """
SELECT c1.Sonde, c1.Temperature, c1.Date, c1.Topic
FROM Chaufferie c1
INNER JOIN (
SELECT Sonde, MAX(Date) AS MaxDate
FROM Chaufferie
GROUP BY Sonde
) c2 ON c1.Sonde = c2.Sonde AND c1.Date = c2.MaxDate
ORDER BY c1.Topic, c1.Sonde
"""
cursor.execute(query)
data = cursor.fetchall()
cursor.close()
conn.close()
return data
def get_history_by_sonde(sonde_name):
conn = get_connection()
cursor = conn.cursor(dictionary=True)
query = """
SELECT Date, Temperature
FROM Chaufferie
WHERE Sonde = %s AND Date >= NOW() - INTERVAL 1 DAY
ORDER BY Date ASC
"""
cursor.execute(query, (sonde_name,))
data = cursor.fetchall()
cursor.close()
conn.close()
return data