From 65f44313a06c55746e701ab1d5f82beecf6dc56b Mon Sep 17 00:00:00 2001 From: amandine-sahl Date: Thu, 26 Oct 2023 16:01:04 +0200 Subject: [PATCH] Add code_liste as query string --- apptax/taxonomie/routestaxref.py | 8 ++++++++ apptax/tests/test_taxref.py | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/apptax/taxonomie/routestaxref.py b/apptax/taxonomie/routestaxref.py index 4c723637..29dbcf99 100644 --- a/apptax/taxonomie/routestaxref.py +++ b/apptax/taxonomie/routestaxref.py @@ -342,6 +342,7 @@ def get_AllTaxrefNameByListe(id_liste=None): params URL: - id_liste : identifiant de la liste (si id_liste est null ou = à -1 on ne prend pas de liste) params GET (facultatifs): + - code_liste : code de la liste à filtrer, n'est pris en compte que si aucune liste est spécifiée - search_name : nom recherché. Recherche basée sur la fonction ilike de SQL avec un remplacement des espaces par % - regne : filtre sur le règne INPN @@ -359,6 +360,13 @@ def get_AllTaxrefNameByListe(id_liste=None): CorNomListe, and_(CorNomListe.id_nom == BibNoms.id_nom, CorNomListe.id_liste == id_liste), ) + elif request.args.get("code_liste"): + q = ( + db.session.query(BibListes.id_liste).filter( + BibListes.code_liste == request.args.get("code_liste") + ) + ).one() + id_liste = q[0] search_name = request.args.get("search_name") if search_name: diff --git a/apptax/tests/test_taxref.py b/apptax/tests/test_taxref.py index c69fba91..2fcb0b6c 100644 --- a/apptax/tests/test_taxref.py +++ b/apptax/tests/test_taxref.py @@ -26,7 +26,7 @@ class TestAPITaxref: def test_get_allnamebyListe_routes(self): query_string = {"limit": 10} response = self.client.get( - url_for("taxref.get_AllTaxrefNameByListe", id_liste="100"), query_string=query_string + url_for("taxref.get_AllTaxrefNameByListe", id_liste=100), query_string=query_string ) assert response.status_code == 200 data = response.json @@ -48,6 +48,16 @@ def test_get_allnamebyListe_routes_without_list(self): if data: assert self.schema_allnamebyListe.is_valid(data) + def test_get_allnamebyListe_routes_with_code(self): + query_string = {"limit": 10, "code_list": "100"} + response = self.client.get( + url_for("taxref.get_AllTaxrefNameByListe", id_liste=None), query_string=query_string + ) + assert response.status_code == 200 + data = response.json + if data: + assert self.schema_allnamebyListe.is_valid(data) + def test_get_distinct_routes(self): response = self.client.get(url_for("taxref.getDistinctField", field="regne")) assert response.status_code == 200