from fastapi import FastAPI, Header, HTTPException
import sqlite3
import time

app = FastAPI()
API_KEY = "c5a0b5c4467c56f25c84918906546868bfcd4427b9caaf6bd9151ba3192"  # change-la pour une vraie clé aléatoire
DB_PATH = "/home/louj/iot/iot.db"

def verifier_cle(x_api_key: str = Header(...)):
    if x_api_key != API_KEY:
        raise HTTPException(status_code=401, detail="Non autorisé")

@app.get("/temperature")
def get_temperature(x_api_key: str = Header(...)):
    verifier_cle(x_api_key)
    conn = sqlite3.connect(DB_PATH)
    row = conn.execute(
        "SELECT valeur, timestamp FROM mesures WHERE capteur='temperature' ORDER BY timestamp DESC LIMIT 1"
    ).fetchone()
    conn.close()
    if row is None:
        raise HTTPException(status_code=404, detail="Aucune donnée disponible")
    return {"temperature": row[0], "il_y_a_secondes": round(time.time() - row[1])}

@app.get("/niveau_eau")
def get_niveau(x_api_key: str = Header(...)):
    verifier_cle(x_api_key)
    conn = sqlite3.connect(DB_PATH)
    row = conn.execute(
        "SELECT valeur, timestamp FROM mesures WHERE capteur='niveau_eau' ORDER BY timestamp DESC LIMIT 1"
    ).fetchone()
    conn.close()
    if row is None:
        raise HTTPException(status_code=404, detail="Aucune donnée disponible")
    return {"niveau_eau": row[0], "il_y_a_secondes": round(time.time() - row[1])}
