Skip to content

Commit 5f57f4d

Browse files
committed
Throw 404 instead of 500 if no leaderboard entry could be found.
This happens regularly if the leaderboard record is inactive. Fixes #371, also fixes #302
1 parent 0209d61 commit 5f57f4d

File tree

5 files changed

+21
-28
lines changed

5 files changed

+21
-28
lines changed

.idea/codeStyles/codeStyleConfig.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/compiler.xml

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/java/com/faforever/api/leaderboard/LeaderboardController.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.faforever.api.leaderboard;
22

3-
import com.faforever.api.web.ResourceNotFoundException;
3+
import com.faforever.api.error.Error;
4+
import com.faforever.api.error.ErrorCode;
5+
import com.faforever.api.error.NotFoundApiException;
46
import com.google.common.collect.ImmutableMap;
57
import com.yahoo.elide.jsonapi.models.Data;
68
import com.yahoo.elide.jsonapi.models.JsonApiDocument;
@@ -76,13 +78,13 @@ public CompletableFuture<JsonApiDocument> getGlobal(@RequestParam(value = "page[
7678
@Async
7779
@RequestMapping(path = "/ladder1v1/{playerId}", method = RequestMethod.GET)
7880
@ApiOperation("Lists the ladder1v1 leaderboard for the specified player")
79-
public CompletableFuture<JsonApiDocument> getSingleLadder1v1(@PathVariable("playerId") String playerId) {
80-
Ladder1v1LeaderboardEntry entry = leaderboardService.getLadder1v1Entry(Integer.valueOf(playerId));
81+
public CompletableFuture<JsonApiDocument> getSingleLadder1v1(@PathVariable("playerId") Integer playerId) {
82+
Ladder1v1LeaderboardEntry entry = leaderboardService.getLadder1v1Entry(playerId);
8183
if (entry == null) {
82-
throw new ResourceNotFoundException("No ladder1v1 entry found for player: " + playerId);
84+
throw new NotFoundApiException(new Error(ErrorCode.ENTITY_NOT_FOUND, playerId));
8385
}
8486

85-
Resource resource = new Resource(LADDER_1V1_LEADERBOARD_ENTRY, playerId, ImmutableMap.<String, Object>builder()
87+
Resource resource = new Resource(LADDER_1V1_LEADERBOARD_ENTRY, playerId.toString(), ImmutableMap.<String, Object>builder()
8688
.put("name", entry.getPlayerName())
8789
.put("mean", entry.getMean())
8890
.put("deviation", entry.getDeviation())
@@ -99,13 +101,13 @@ public CompletableFuture<JsonApiDocument> getSingleLadder1v1(@PathVariable("play
99101
@Async
100102
@RequestMapping(path = "/global/{playerId}", method = RequestMethod.GET)
101103
@ApiOperation("Lists the global leaderboard for the specified player")
102-
public CompletableFuture<JsonApiDocument> getSingleGlobal(@PathVariable("playerId") String playerId) {
103-
GlobalLeaderboardEntry entry = leaderboardService.getGlobalEntry(Integer.valueOf(playerId));
104+
public CompletableFuture<JsonApiDocument> getSingleGlobal(@PathVariable("playerId") Integer playerId) {
105+
GlobalLeaderboardEntry entry = leaderboardService.getGlobalEntry(playerId);
104106
if (entry == null) {
105-
throw new ResourceNotFoundException("No global leaderboard entry found for player: " + playerId);
107+
throw new NotFoundApiException(new Error(ErrorCode.ENTITY_NOT_FOUND, playerId));
106108
}
107109

108-
Resource resource = new Resource(GLOBAL_LEADERBOARD_ENTRY, playerId, ImmutableMap.<String, Object>builder()
110+
Resource resource = new Resource(GLOBAL_LEADERBOARD_ENTRY, playerId.toString(), ImmutableMap.<String, Object>builder()
109111
.put("name", entry.getPlayerName())
110112
.put("mean", entry.getMean())
111113
.put("deviation", entry.getDeviation())

src/main/java/com/faforever/api/web/ResourceNotFoundException.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)