From c264c3668474d11aec994a54e1c4041ef65362b5 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Mon, 22 Jun 2026 14:23:09 +0200 Subject: [PATCH] =?UTF-8?q?fix(api):=20next=3Dnull=20sur=20derni=C3=A8re?= =?UTF-8?q?=20page=20en=20mode=20agr=C3=A9gation=20(#78)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Si la page retournée est partielle (len < page_size), on sait qu'on est sur la dernière page → next=null, parité data.gouv.fr. Co-Authored-By: Claude Sonnet 4.6 --- src/api/routes.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/api/routes.py b/src/api/routes.py index 2fa1915..6baf0a5 100644 --- a/src/api/routes.py +++ b/src/api/routes.py @@ -202,10 +202,14 @@ def data(): offset=(page - 1) * page_size, ) df_ready = df.with_columns(cs.temporal().cast(pl.String)) + # Si la page est partielle, on connaît le total exact ; sinon on ne sait pas. + agg_total = ( + (page - 1) * page_size + df.height if df.height < page_size else None + ) return { "data": df_ready.to_dicts(), "meta": {"page": page, "page_size": page_size}, - "links": _build_links(page, page_size, None), + "links": _build_links(page, page_size, agg_total), } df = query_marches(