Commit 8992f4aa authored by Erik Moravec's avatar Erik Moravec
Browse files

refactor: added new sample data to data loader

parent da1c5124
Loading
Loading
Loading
Loading
+38 −6
Original line number Diff line number Diff line
package cz.muni.fi.pa165.icehockeymanager.rest.demo;

import cz.muni.fi.pa165.icehockeymanager.dto.TeamCreateDto;
import cz.muni.fi.pa165.icehockeymanager.dto.*;
import cz.muni.fi.pa165.icehockeymanager.facades.LeagueManagerFacade;
import cz.muni.fi.pa165.icehockeymanager.facades.TeamManagerFacade;
import cz.muni.fi.pa165.icehockeymanager.facades.UserAuthFacade;
import cz.muni.fi.pa165.icehockeymanager.facades.UserFacade;
import cz.muni.fi.pa165.icehockeymanager.model.Player;
import cz.muni.fi.pa165.icehockeymanager.model.Team;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
public class DataLoader implements ApplicationRunner {

    private final UserAuthFacade userAuth;
    private final LeagueManagerFacade leagueManager;
    private final TeamManagerFacade teamManagerFacade;
    private final UserFacade userFacade;

    public DataLoader(UserAuthFacade userAuth, LeagueManagerFacade leagueManager, UserFacade userFacade) {
    public DataLoader(UserAuthFacade userAuth, LeagueManagerFacade leagueManager, TeamManagerFacade teamManagerFacade, UserFacade userFacade) {
        this.userAuth = userAuth;
        this.leagueManager = leagueManager;
        this.teamManagerFacade = teamManagerFacade;
        this.userFacade = userFacade;
    }

@@ -27,11 +35,35 @@ public class DataLoader implements ApplicationRunner {
        return team;
    }

    private static PlayerCreateDto createPlayer(String name) {
        var player = new PlayerCreateDto();
        player.setName(name);
        return player;
    }

    private static PlayerTransferDto transferPlayer(long playerId, long teamId) {
        var transfer = new PlayerTransferDto();
        transfer.setPlayerId(playerId);
        transfer.setTeamId(teamId);
        return transfer;
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
    public void run(ApplicationArguments args) {
        leagueManager.createNewTeam(createTeam("Toronto Maple Leafs"));
        var teams = userFacade.getTeamsInLeague();
        var team = teams.stream().findFirst().orElseThrow();
        userAuth.createTeamManager("team_manager", "1234", team.getId().intValue());
        leagueManager.createNewTeam(createTeam("HC Slovan Bratislava"));
        List<TeamDto> teams = new ArrayList<>(userFacade.getTeamsInLeague());

        teamManagerFacade.recruitNewPlayer(createPlayer("Marian Hossa"));
        teamManagerFacade.recruitNewPlayer(createPlayer("Marcel Hossa"));
        teamManagerFacade.recruitNewPlayer(createPlayer("Zdeno Chára"));
        teamManagerFacade.recruitNewPlayer(createPlayer("Miroslav Šatan"));
        List<PlayerDto> players = new ArrayList<>(userFacade.getAllPlayers());

        teamManagerFacade.recruitPlayer(transferPlayer(players.get(0).getId(), teams.get(0).getId()));
        teamManagerFacade.recruitPlayer(transferPlayer(players.get(1).getId(), teams.get(1).getId()));

        userAuth.createTeamManager("team_manager", "1234", teams.get(0).getId().intValue());
        userAuth.createTeamManager("team_manager_slovan", "0000", teams.get(1).getId().intValue());
    }
}