From f27a0044f1c961116e6b3f9171c68dbff57b51d3 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:30:42 +0200 Subject: [PATCH] refactor(search): align ResponseStatusException imports + add wildcard HTTP test --- .../server/app/controller/SearchController.java | 5 +++-- .../server/app/controller/SearchControllerIT.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/cameleer-server-app/src/main/java/com/cameleer/server/app/controller/SearchController.java b/cameleer-server-app/src/main/java/com/cameleer/server/app/controller/SearchController.java index 33cfd966..146946df 100644 --- a/cameleer-server-app/src/main/java/com/cameleer/server/app/controller/SearchController.java +++ b/cameleer-server-app/src/main/java/com/cameleer/server/app/controller/SearchController.java @@ -15,6 +15,7 @@ import com.cameleer.server.core.search.TopError; import com.cameleer.server.core.storage.StatsStore; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.server.ResponseStatusException; import java.time.Instant; import java.util.ArrayList; @@ -69,8 +71,7 @@ public class SearchController { try { attributeFilters = parseAttrParams(attr); } catch (IllegalArgumentException e) { - throw new org.springframework.web.server.ResponseStatusException( - org.springframework.http.HttpStatus.BAD_REQUEST, e.getMessage(), e); + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage(), e); } SearchRequest request = new SearchRequest( diff --git a/cameleer-server-app/src/test/java/com/cameleer/server/app/controller/SearchControllerIT.java b/cameleer-server-app/src/test/java/com/cameleer/server/app/controller/SearchControllerIT.java index 95cde923..49eed7fb 100644 --- a/cameleer-server-app/src/test/java/com/cameleer/server/app/controller/SearchControllerIT.java +++ b/cameleer-server-app/src/test/java/com/cameleer/server/app/controller/SearchControllerIT.java @@ -465,6 +465,16 @@ class SearchControllerIT extends AbstractPostgresIT { assertThat(body.get("data").get(0).get("correlationId").asText()).isEqualTo("corr-attr-alpha"); } + @Test + void attrParam_wildcardValue_matchesOnPrefix() throws Exception { + ResponseEntity response = searchGet("?attr=order:1*&correlationId=corr-attr-alpha"); + assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); + + JsonNode body = objectMapper.readTree(response.getBody()); + assertThat(body.get("total").asLong()).isEqualTo(1); + assertThat(body.get("data").get(0).get("correlationId").asText()).isEqualTo("corr-attr-alpha"); + } + // --- Helper methods --- private void ingest(String json) {