Skip to content

Commit

Permalink
Move leagueScore request to ReplayService
Browse files Browse the repository at this point in the history
  • Loading branch information
BlackYps committed Nov 27, 2023
1 parent da399e8 commit 725114d
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -224,15 +224,6 @@ public CompletableFuture<List<LeagueEntryBean>> getEntries(SubdivisionBean subdi
.toFuture()
);
}

public CompletableFuture<List<LeagueScoreJournalBean>> getLeagueScoreJournalForReplay(ReplayBean replay) {
ElideNavigatorOnCollection<LeagueScoreJournal> navigator = ElideNavigator.of(LeagueScoreJournal.class).collection()
.setFilter(qBuilder().intNum("gameId").eq(replay.getId()));
return fafApiAccessor.getMany(navigator)
.map(dto -> leaderboardMapper.map(dto, new CycleAvoidingMappingContext()))
.collectList()
.toFuture();
}

private CompletableFuture<List<LeagueEntryBean>> mapLeagueEntryDtoToBean(CompletableFuture<List<LeagueSeasonScore>> future) {
return future.thenCompose(leagueSeasonScores -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,13 @@
import com.faforever.client.domain.LeaderboardRatingJournalBean;
import com.faforever.client.domain.LeagueBean;
import com.faforever.client.domain.LeagueEntryBean;
import com.faforever.client.domain.LeagueScoreJournalBean;
import com.faforever.client.domain.LeagueSeasonBean;
import com.faforever.client.domain.PlayerBean;
import com.faforever.client.domain.SubdivisionBean;
import com.faforever.commons.api.dto.Leaderboard;
import com.faforever.commons.api.dto.LeaderboardEntry;
import com.faforever.commons.api.dto.LeaderboardRatingJournal;
import com.faforever.commons.api.dto.League;
import com.faforever.commons.api.dto.LeagueScoreJournal;
import com.faforever.commons.api.dto.LeagueSeason;
import com.faforever.commons.api.dto.LeagueSeasonDivision;
import com.faforever.commons.api.dto.LeagueSeasonDivisionSubdivision;
Expand Down Expand Up @@ -86,14 +84,4 @@ public interface LeaderboardMapper {
@Mapping(target = "gameCount", source = "gamesPlayed")
@Mapping(target = "leagueSeasonDivisionSubdivision", source = "subdivision")
LeagueSeasonScore map(LeagueEntryBean bean, @Context CycleAvoidingMappingContext context);

@Mapping(target = "season", source = "leagueSeason")
@Mapping(target = "divisionBefore", source = "leagueSeasonDivisionSubdivisionBefore")
@Mapping(target = "divisionAfter", source = "leagueSeasonDivisionSubdivisionAfter")
LeagueScoreJournalBean map(LeagueScoreJournal source, @Context CycleAvoidingMappingContext context);

@Mapping(target = "leagueSeason", source = "season")
@Mapping(target = "leagueSeasonDivisionSubdivisionBefore", source = "divisionBefore")
@Mapping(target = "leagueSeasonDivisionSubdivisionAfter", source = "divisionAfter")
LeagueScoreJournal map(LeagueScoreJournalBean source, @Context CycleAvoidingMappingContext context);
}
12 changes: 12 additions & 0 deletions src/main/java/com/faforever/client/mapstruct/ReplayMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import com.faforever.client.domain.FeaturedModBean;
import com.faforever.client.domain.GamePlayerStatsBean;
import com.faforever.client.domain.LeaderboardRatingJournalBean;
import com.faforever.client.domain.LeagueScoreJournalBean;
import com.faforever.client.domain.MapVersionBean;
import com.faforever.client.domain.PlayerBean;
import com.faforever.client.domain.ReplayBean;
import com.faforever.commons.api.dto.Faction;
import com.faforever.commons.api.dto.Game;
import com.faforever.commons.api.dto.GamePlayerStats;
import com.faforever.commons.api.dto.LeagueScoreJournal;
import com.faforever.commons.replay.ChatMessage;
import com.faforever.commons.replay.GameOption;
import com.faforever.commons.replay.ReplayDataParser;
Expand Down Expand Up @@ -70,6 +72,16 @@ default Map<String, List<GamePlayerStatsBean>> mapToTeamPlayerStats(Game dto,
.collect(Collectors.groupingBy(gamePlayerStats -> String.valueOf(gamePlayerStats.getTeam()), Collectors.mapping(gamePlayerStats -> map(gamePlayerStats, context), Collectors.toList())));
}

@Mapping(target = "season", source = "leagueSeason")
@Mapping(target = "divisionBefore", source = "leagueSeasonDivisionSubdivisionBefore")
@Mapping(target = "divisionAfter", source = "leagueSeasonDivisionSubdivisionAfter")
LeagueScoreJournalBean map(LeagueScoreJournal source, @Context CycleAvoidingMappingContext context);

@Mapping(target = "leagueSeason", source = "season")
@Mapping(target = "leagueSeasonDivisionSubdivisionBefore", source = "divisionBefore")
@Mapping(target = "leagueSeasonDivisionSubdivisionAfter", source = "divisionAfter")
LeagueScoreJournal map(LeagueScoreJournalBean source, @Context CycleAvoidingMappingContext context);

@Mapping(target = "local", constant = "true")
@Mapping(target = "id", source = "parser.metadata.uid")
@Mapping(target = "title", source = "parser.metadata.title")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import com.faforever.client.game.RatingPrecision;
import com.faforever.client.game.TeamCardController;
import com.faforever.client.i18n.I18n;
import com.faforever.client.leaderboard.LeaderboardService;
import com.faforever.client.main.event.DeleteLocalReplayEvent;
import com.faforever.client.map.MapService;
import com.faforever.client.map.MapService.PreviewSize;
Expand Down Expand Up @@ -104,7 +103,6 @@ public class ReplayDetailController implements Controller<Node> {
private final UiService uiService;
private final ReplayService replayService;
private final RatingService ratingService;
private final LeaderboardService leaderboardService;
private final MapService mapService;
private final MapGeneratorService mapGeneratorService;
private final PlayerService playerService;
Expand Down Expand Up @@ -307,9 +305,9 @@ private void onReplayChanged(ReplayBean newValue) {
if (newValue.getReplayFile() != null) {
enrichReplayLater(newValue.getReplayFile(), newValue);
}

newValue.setLeagueScores(null);
leaderboardService.getLeagueScoreJournalForReplay(newValue)
replayService.getLeagueScoreJournalForReplay(newValue)
.thenAccept(scores -> Platform.runLater(() -> {
newValue.setLeagueScores(scores);
// This looks a bit ugly. Ideally we should wait with drawing the window until we have the league scores,
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/com/faforever/client/replay/ReplayService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.faforever.client.config.CacheNames;
import com.faforever.client.config.ClientProperties;
import com.faforever.client.domain.FeaturedModBean;
import com.faforever.client.domain.LeagueScoreJournalBean;
import com.faforever.client.domain.MapBean;
import com.faforever.client.domain.MapVersionBean;
import com.faforever.client.domain.ReplayBean;
Expand All @@ -29,6 +30,7 @@
import com.faforever.client.vault.search.SearchController.SortOrder;
import com.faforever.commons.api.dto.Game;
import com.faforever.commons.api.dto.GameReviewsSummary;
import com.faforever.commons.api.dto.LeagueScoreJournal;
import com.faforever.commons.api.elide.ElideNavigator;
import com.faforever.commons.api.elide.ElideNavigatorOnCollection;
import com.faforever.commons.api.elide.ElideNavigatorOnId;
Expand Down Expand Up @@ -463,4 +465,13 @@ private CompletableFuture<Tuple2<List<ReplayBean>, Integer>> getReplayPage(Elide
.collect(toList())))
.toFuture();
}

public CompletableFuture<List<LeagueScoreJournalBean>> getLeagueScoreJournalForReplay(ReplayBean replay) {
ElideNavigatorOnCollection<LeagueScoreJournal> navigator = ElideNavigator.of(LeagueScoreJournal.class).collection()
.setFilter(qBuilder().intNum("gameId").eq(replay.getId()));
return fafApiAccessor.getMany(navigator)
.map(dto -> replayMapper.map(dto, new CycleAvoidingMappingContext()))
.collectList()
.toFuture();
}
}

0 comments on commit 725114d

Please sign in to comment.