Feat/territories filter management#453
Feat/territories filter management#453GtanSndil wants to merge 25 commits intorefactor/refactoring_magma_traditional_in_new_magmafrom
Conversation
…TerritorialeAyantDesCompetencesDepartementales was in output and is not anymore + modif in BDD (statements.trig) cause +x territories
…tale was a descendant
…to feat/territoriesFilterManagement
… for /ascendants and /descendants
FBibonne
left a comment
There was a problem hiding this comment.
Je ne comprends pas pourquoi il y a une variable listeTypesGeo globale à toute la configuration Freemarker alors qu'il y en a une aussi dans les paramètres des requêtes Ascendants/descandants
Aussi, pour les paramètres des requêtes ascendants / descendants, on devrait avoir une List<TerritoireBase.TypeEnum> pour le filtre pour être plus parlant. La gestion de ce filtre peut se faire dans le composant Spring endpointUtil avec une méthode qui traite la logique de prendre le type en paramètre de la requête comme filtre ou de recourir au filtre par défaut.
magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/EndpointsUtils.java
Outdated
Show resolved
Hide resolved
magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/utils/EndpointsUtils.java
Outdated
Show resolved
Hide resolved
| if ("filtreNom".equals(recordComponent.getName())) { | ||
| return new ParameterValueDecoder.DelegaterDecoder<>(stringValue -> stringValue == null ? "*" : stringValue.toString()); | ||
| } | ||
| if ("listeTypesGeo".equals(recordComponent.getName())) { |
There was a problem hiding this comment.
Inutile pour un type String il me semble mais pourrait être utile pour un type List<TerritoireBas.TypeEnum>
| TypeEnumDescendantsUniteUrbaine typeEnumDescendantsUniteUrbaine, | ||
| TypeEnumDescendantsZoneDEmploi typeEnumDescendantsZoneDEmploi, | ||
| String filtreNom, | ||
| String listeTypesGeo, |
There was a problem hiding this comment.
Une List<TerritoireBase.TypeEnum> serait plus parlant
...pl/src/main/java/fr/insee/rmes/magma/diffusion/api/GeoAireDAttractionDesVillesEndpoints.java
Outdated
Show resolved
Hide resolved
...diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/api/GeoUniteUrbaineEndpoints.java
Outdated
Show resolved
Hide resolved
...-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/api/GeoZoneDEmploiEndpoints.java
Outdated
Show resolved
Hide resolved
magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/config/MetadataConfig.java
Outdated
Show resolved
Hide resolved
magma-diffusion-impl/src/main/java/fr/insee/rmes/magma/diffusion/config/MetadataConfig.java
Outdated
Show resolved
Hide resolved
|
|
||
| configuration.setWrapUncheckedExceptions(true); | ||
|
|
||
| String listeTypesGeo = Arrays.stream(typesAutorises.split(",")) |
There was a problem hiding this comment.
A quoi sert cette variable globale si on a un listeTypesGeo dans AscendantsDescendantsRequestParametizer ?
Principe: les requêtes ne doivent renvoyer que les territoires définis dans une liste, elle-même définie dans les properties
Souci : certains tests ne passent plus en raison de la taille de la requête (filtre très long) :
Error Bad Request with message <!doctype html><title>HTTP Status 400 ......
Request header is too large
En revanche, quand on lance MagmaDiffusion en local, les end-points correspondants renvoient ce qui est attendu.
Tests concernés pour mémoire :
should_return_1_iris_when_CantonOuVilleCodeDescendants_code0101_date20250904_typeIris_filtreNomPerouses(){
should_return_1_cantonOuVIlle_when_RegionCodeDescendants_code06_date20250904_typeCantonOuVille_filtreNomDembeni
should_return_1_commune_when_DepartementCodeDescendants_code45_date20250904_typeCommune_filtreNomOrleans
should_return_1_commune_when_COMCodeDescendants_code975_date20250904_typeCommune_filtreNomMiquelon
Il s'agit de tous les tests sur les descendants avec filtreNom non null
Avec la mutualisation du filtre, ce problème est réglé.
j'ai aussi retiré
de la requête getAscendantsFauxIrisByCodeTypeDate.ftlh
Pour les pays, la requête est à part (getPaysDescendants.ftlh) et type ne peux valoir que Territoire => J'ai laissé la requête telle quelle.