Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feature/#1775-show-all-search-re…
Browse files Browse the repository at this point in the history
…sults' into feature/#1775-show-all-search-results

# Conflicts:
#	src/main/java/com/faforever/client/leaderboard/LeaderboardController.java
  • Loading branch information
Tim-eror committed Jun 18, 2020
2 parents 88b72ea + c70805f commit df6e028
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 36 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/faforever/client/api/FafApiAccessor.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public interface FafApiAccessor {

List<Map> findMapsByQuery(SearchConfig searchConfig, int page, int count);

List<GlobalLeaderboardEntry> findGlobalLeaderboardEntryByQuery(SearchConfig searchConfig, int page, int count);
List<GlobalLeaderboardEntry> findGlobalLeaderboardEntryByQuery(String nameToSearch, int page, int count);

Optional<MapVersion> findMapVersionById(String id);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -479,13 +479,11 @@ public List<Map> findMapsByQuery(SearchConfig searchConfig, int page, int count)
}

@Override
public List<GlobalLeaderboardEntry> findGlobalLeaderboardEntryByQuery(SearchConfig searchConfig, int page, int count) {
public List<GlobalLeaderboardEntry> findGlobalLeaderboardEntryByQuery(String nameToSearch, int page, int count) {
MultiValueMap<String, String> parameterMap = new LinkedMultiValueMap<>();
if (searchConfig.hasQuery()) {
parameterMap.add("filter", searchConfig.getSearchQuery());
}
parameterMap.add("filter", "player.login==" + nameToSearch + "*");
parameterMap.add("include", "player");
parameterMap.add("sort", searchConfig.getSortConfig().getSortProperty());
parameterMap.add("sort", "-rating");
return getPage(GLOBAL_RATING_ENDPOINT, count, page, parameterMap);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ public List<Map> findMapsByQuery(SearchConfig searchConfig, int page, int count)
}

@Override
public List<GlobalLeaderboardEntry> findGlobalLeaderboardEntryByQuery(SearchConfig searchConfig, int page, int count) {
public List<GlobalLeaderboardEntry> findGlobalLeaderboardEntryByQuery(String nameToSearch, int page, int count) {
return Collections.emptyList();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,32 +119,26 @@ public void setRatingType(KnownFeaturedMod ratingType) {

public void handleSearchButtonClicked(ActionEvent event) {


String searchTextFieldText = searchTextField.getText();
if(searchTextFieldText.isEmpty())
{
//TODO Fill with some stuff
}
else {
Assert.checkNullIllegalState(ratingType, "ratingType must not be null");
contentPane.setVisible(false);
leaderboardService.getSearchResults(1 /*get page of pagination*/, NUMBER_OF_PLAYERS_PER_PAGE, searchTextFieldText).thenAccept(leaderboardEntryBeans -> {
Platform.runLater(() -> {
ratingTable.setItems(observableList(leaderboardEntryBeans));
contentPane.setVisible(true);
});
}).exceptionally(throwable -> {
Platform.runLater(() -> {
contentPane.setVisible(false);
logger.warn("Error while loading leaderboard entries", throwable);
notificationService.addNotification(new ImmediateErrorNotification(
i18n.get("errorTitle"), i18n.get("leaderboard.failedToLoad"),
throwable, i18n, reportingService
));
});
return null;

Assert.checkNullIllegalState(ratingType, "ratingType must not be null");
contentPane.setVisible(false);
leaderboardService.getSearchResults(ratingType, searchTextFieldText, 1 /*get page of pagination*/,NUMBER_OF_PLAYERS_PER_PAGE).thenAccept(leaderboardEntryBeans -> {
Platform.runLater(() -> {
ratingTable.setItems(observableList(leaderboardEntryBeans));
contentPane.setVisible(true);
});
}).exceptionally(throwable -> {
Platform.runLater(() -> {
contentPane.setVisible(false);
logger.warn("Error while loading leaderboard entries", throwable);
notificationService.addNotification(new ImmediateErrorNotification(
i18n.get("errorTitle"), i18n.get("leaderboard.failedToLoad"),
throwable, i18n, reportingService
));
});
}
return null;
});



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,15 @@ public CompletableFuture<List<LeaderboardEntry>> getEntries(KnownFeaturedMod rat
}
}

public CompletableFuture<List<LeaderboardEntry>> getSearchResults(int page, int count, String search) {
return fafService.findGlobalLeaderboardEntryByQuery(new SearchConfig(new SortConfig(SearchablePropertyMappings.HIGHEST_RATING_KEY, SortOrder.DESC), "player.login==" + search + "*"), page, count);
public CompletableFuture<List<LeaderboardEntry>> getSearchResults(KnownFeaturedMod ratingType, String nameToSearch, int page, int count) {
switch (ratingType) {
case FAF:
return fafService.findGlobalLeaderboardEntryByQuery(nameToSearch, page, count);
case LADDER_1V1:
return null; //TODO add second method
default:
throw new IllegalArgumentException("Not supported: " + ratingType);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
public class SearchablePropertyMappings {
public static final String NEWEST_MOD_KEY = "latestVersion.createTime";
public static final String HIGHEST_RATED_MOD_KEY = "latestVersion.reviewsSummary.lowerBound";
public static final String HIGHEST_RATING_KEY = "-rating";

public static final Map<String, Property> GAME_PROPERTY_MAPPING = ImmutableMap.<String, Property>builder()
.put("playerStats.player.login", new Property("game.player.username", false))
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/faforever/client/remote/FafService.java
Original file line number Diff line number Diff line change
Expand Up @@ -255,8 +255,8 @@ public CompletableFuture<List<LeaderboardEntry>> getGlobalLeaderboard() {
}

@Async
public CompletableFuture<List<LeaderboardEntry>> findGlobalLeaderboardEntryByQuery(SearchConfig query, int page, int count) {
return CompletableFuture.completedFuture(fafApiAccessor.findGlobalLeaderboardEntryByQuery(query, page, count)
public CompletableFuture<List<LeaderboardEntry>> findGlobalLeaderboardEntryByQuery(String nameToSearch, int page, int count) {
return CompletableFuture.completedFuture(fafApiAccessor.findGlobalLeaderboardEntryByQuery(nameToSearch, page, count)
.parallelStream()
.map(LeaderboardEntry::fromGlobalRating)
.collect(toList()));
Expand Down

0 comments on commit df6e028

Please sign in to comment.