From 3b15a78a481e2ea548b23aba7a8a45603ef3872f Mon Sep 17 00:00:00 2001 From: Alfardil Alam Date: Fri, 6 Mar 2026 15:17:34 -0500 Subject: [PATCH 1/2] 856: add check for optional --- .../codebloom/api/external/ExternalController.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java b/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java index c15b751d9..4740621d2 100644 --- a/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java +++ b/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java @@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import java.util.List; +import org.patinanetwork.codebloom.common.components.LeaderboardException; import org.patinanetwork.codebloom.common.db.models.api.ApiKey; import org.patinanetwork.codebloom.common.db.models.api.ApiKeyAccessEnum; import org.patinanetwork.codebloom.common.db.models.api.access.ApiKeyAccess; @@ -53,8 +54,8 @@ public ExternalController( @ApiResponse(responseCode = "404", description = "Leaderboard not found") @GetMapping("/gwc/users") public ResponseEntity>> getGwcUsers( - @RequestHeader("X-API-Key") final String apiKey, - @RequestParam("leaderboardId") final String leaderboardId) { + @RequestHeader("X-API-Key") final String apiKey, @RequestParam("leaderboardId") final String leaderboardId) + throws LeaderboardException { ApiKey validApiKey = apiKeyRepository.getApiKeyByHash(apiKey); if (validApiKey == null) { throw new ResponseStatusException(HttpStatus.UNAUTHORIZED, "Invalid API key"); @@ -68,8 +69,8 @@ public ResponseEntity>> getGwcUsers( throw new ResponseStatusException(HttpStatus.FORBIDDEN, "API key does not have GWC read access"); } - if (leaderboardRepository.getLeaderboardMetadataById(leaderboardId) == null) { - throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Leaderboard not found"); + if (leaderboardRepository.getLeaderboardMetadataById(leaderboardId).isEmpty()) { + throw new LeaderboardException("404 Not Found", "Leaderboard not found"); } LeaderboardFilterOptions options = LeaderboardFilterOptions.builder().gwc(true).build(); From 3f8e75adc802fa57b810f304d18115a0f3f0f1a9 Mon Sep 17 00:00:00 2001 From: Alfardil Alam Date: Fri, 6 Mar 2026 15:23:25 -0500 Subject: [PATCH 2/2] 856: throw responsestatusexception --- .../codebloom/api/external/ExternalController.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java b/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java index 4740621d2..194ea3b18 100644 --- a/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java +++ b/src/main/java/org/patinanetwork/codebloom/api/external/ExternalController.java @@ -5,7 +5,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import java.util.List; -import org.patinanetwork.codebloom.common.components.LeaderboardException; import org.patinanetwork.codebloom.common.db.models.api.ApiKey; import org.patinanetwork.codebloom.common.db.models.api.ApiKeyAccessEnum; import org.patinanetwork.codebloom.common.db.models.api.access.ApiKeyAccess; @@ -54,8 +53,8 @@ public ExternalController( @ApiResponse(responseCode = "404", description = "Leaderboard not found") @GetMapping("/gwc/users") public ResponseEntity>> getGwcUsers( - @RequestHeader("X-API-Key") final String apiKey, @RequestParam("leaderboardId") final String leaderboardId) - throws LeaderboardException { + @RequestHeader("X-API-Key") final String apiKey, + @RequestParam("leaderboardId") final String leaderboardId) { ApiKey validApiKey = apiKeyRepository.getApiKeyByHash(apiKey); if (validApiKey == null) { throw new ResponseStatusException(HttpStatus.UNAUTHORIZED, "Invalid API key"); @@ -70,7 +69,7 @@ public ResponseEntity>> getGwcUsers( } if (leaderboardRepository.getLeaderboardMetadataById(leaderboardId).isEmpty()) { - throw new LeaderboardException("404 Not Found", "Leaderboard not found"); + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Leaderboard not found"); } LeaderboardFilterOptions options = LeaderboardFilterOptions.builder().gwc(true).build();