Skip to content
Snippets Groups Projects
Commit a73046fe authored by CHEVRIER Maelys's avatar CHEVRIER Maelys
Browse files

get capteur-relevé done

parent 6f1be595
No related branches found
No related tags found
No related merge requests found
......@@ -243,19 +243,43 @@ async def read_capteurs(db: db_dependency):
@app.get("/capteurs-releve/", tags=["Capteur"], status_code=status.HTTP_200_OK)
async def read_capteurs_last_releve(db: db_dependency):
# Subquery pour obtenir la date maximale (la plus récente) pour chaque capteur
subquery = (db.query(Releve.capteur_id,func.max(Releve.date_releve).label("max_date_releve"))
.group_by(Releve.capteur_id).subquery())
subquery = (
db.query(
Releve.capteur_id,
func.max(Releve.date_releve).label("max_date_releve")
)
.group_by(Releve.capteur_id)
.subquery()
)
# Requête principale pour récupérer les derniers relevés pour chaque capteur
query = (db.query(Releve, Capteur.nom, Capteur.unite)
.join(subquery, (Releve.capteur_id == subquery.c.capteur_id) & (Releve.date_releve == subquery.c.max_date_releve))
.join(Capteur, Releve.capteur_id == Capteur.id)
query = (
db.query(
Capteur,
subquery.c.max_date_releve.label("date_releve"),
Releve.valeur
)
.join(subquery, Capteur.id == subquery.c.capteur_id)
.join(Releve, (Releve.capteur_id == Capteur.id) & (Releve.date_releve == subquery.c.max_date_releve))
.all()
)
if not query:
raise HTTPException(status_code=404, detail="Relevé not found")
return query
results = [
{
"capteur_id": capteur.id,
"nom": capteur.nom,
"description": capteur.description,
"unite": capteur.unite,
"parcelle_id": capteur.parcelle_id,
"date_releve": date_releve,
"valeur": valeur
}
for capteur, date_releve, valeur in query
]
return results
@app.post("/releve/", tags=["Relevé"], status_code=status.HTTP_201_CREATED)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment