From 7b827db09e90f890fd639d2dfd607b074ca9cb65 Mon Sep 17 00:00:00 2001 From: Marcos Lopez Gonzalez Date: Wed, 8 Jan 2025 17:46:13 +0100 Subject: [PATCH] #642 ignoring underscore in facet names --- ...ciCollSearchRequestHandlerMethodArgumentResolver.java | 4 ++++ ...iptorsSearchRequestHandlerMethodArgumentResolver.java | 9 ++++++++- ...acetedSearchRequestHandlerMethodArgumentResolver.java | 9 ++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java b/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java index 4894955e0..220275dcf 100644 --- a/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java +++ b/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java @@ -287,4 +287,8 @@ protected Map toCaseInsensitiveParams(NativeWebRequest webRequ Collectors.toMap( e -> e.getKey().toLowerCase(), Map.Entry::getValue, ArrayUtils::addAll)); } + + protected String normalizeFacet(String facet) { + return facet.toLowerCase().replace("_", ""); + } } diff --git a/registry-ws/src/main/java/org/gbif/registry/ws/provider/CollectionDescriptorsSearchRequestHandlerMethodArgumentResolver.java b/registry-ws/src/main/java/org/gbif/registry/ws/provider/CollectionDescriptorsSearchRequestHandlerMethodArgumentResolver.java index 49788b956..cbb75489b 100644 --- a/registry-ws/src/main/java/org/gbif/registry/ws/provider/CollectionDescriptorsSearchRequestHandlerMethodArgumentResolver.java +++ b/registry-ws/src/main/java/org/gbif/registry/ws/provider/CollectionDescriptorsSearchRequestHandlerMethodArgumentResolver.java @@ -88,6 +88,13 @@ public Object resolveArgument( } private Function facetParamParser() { - return s -> CollectionFacetParameter.valueOf(s.toUpperCase()); + return s -> { + for (CollectionFacetParameter value : CollectionFacetParameter.values()) { + if (normalizeFacet(value.name()).equals(normalizeFacet(s))) { + return value; + } + } + return null; + }; } } diff --git a/registry-ws/src/main/java/org/gbif/registry/ws/provider/InstitutionFacetedSearchRequestHandlerMethodArgumentResolver.java b/registry-ws/src/main/java/org/gbif/registry/ws/provider/InstitutionFacetedSearchRequestHandlerMethodArgumentResolver.java index cad19c39a..2d155f5d4 100644 --- a/registry-ws/src/main/java/org/gbif/registry/ws/provider/InstitutionFacetedSearchRequestHandlerMethodArgumentResolver.java +++ b/registry-ws/src/main/java/org/gbif/registry/ws/provider/InstitutionFacetedSearchRequestHandlerMethodArgumentResolver.java @@ -46,6 +46,13 @@ public Object resolveArgument( } private Function facetParamParser() { - return s -> InstitutionFacetParameter.valueOf(s.toUpperCase()); + return s -> { + for (InstitutionFacetParameter value : InstitutionFacetParameter.values()) { + if (normalizeFacet(value.name()).equals(normalizeFacet(s))) { + return value; + } + } + return null; + }; } }