Skip to content
Snippets Groups Projects
Commit f6a41562 authored by Ján Dovjak's avatar Ján Dovjak
Browse files

feat: TeamManager firePlayer

parent cb26def1
No related branches found
No related tags found
No related merge requests found
...@@ -38,7 +38,7 @@ public class TeamManagerFacadeImpl implements TeamManagerFacade{ ...@@ -38,7 +38,7 @@ public class TeamManagerFacadeImpl implements TeamManagerFacade{
); );
Player newPlayer = beanMappingService.mapTo(playerCreateDTO, Player.class); Player newPlayer = beanMappingService.mapTo(playerCreateDTO, Player.class);
playerService.createPlayer(newPlayer, team); playerService.createPlayer(newPlayer, team);
teamService.addPlayerToTeam(newPlayer, team); teamService.addPlayerToTeam(team, newPlayer);
} }
@Override @Override
...@@ -49,7 +49,8 @@ public class TeamManagerFacadeImpl implements TeamManagerFacade{ ...@@ -49,7 +49,8 @@ public class TeamManagerFacadeImpl implements TeamManagerFacade{
Player player = playerService.findPlayer(playerId).orElseThrow( Player player = playerService.findPlayer(playerId).orElseThrow(
() -> new UnknownPlayerException("Player not found") () -> new UnknownPlayerException("Player not found")
); );
teamService.addPlayerToTeam(player, team); teamService.addPlayerToTeam(team, player);
playerService.addTeamToPlayer(player, team);
} }
@Override @Override
...@@ -60,6 +61,13 @@ public class TeamManagerFacadeImpl implements TeamManagerFacade{ ...@@ -60,6 +61,13 @@ public class TeamManagerFacadeImpl implements TeamManagerFacade{
@Override @Override
public void firePlayer(long playerId, long teamId) { public void firePlayer(long playerId, long teamId) {
Team team = teamService.getTeam(teamId).orElseThrow(
() -> new UnknownTeamException("Team not found")
);
Player player = playerService.findPlayer(playerId).orElseThrow(
() -> new UnknownPlayerException("Player not found")
);
teamService.removePlayerFromTeam(team, player);
playerService.removeTeamFromPlayer(player, team);
} }
} }
...@@ -65,6 +65,10 @@ public class Team implements IDEqual, DirtyHash { ...@@ -65,6 +65,10 @@ public class Team implements IDEqual, DirtyHash {
return players.remove(player); return players.remove(player);
} }
public boolean containsPlayer(Player player) {
return players.contains(player);
}
@Override @Override
public String toString() { public String toString() {
return "Team{" + return "Team{" +
......
...@@ -23,4 +23,9 @@ public interface PlayerService { ...@@ -23,4 +23,9 @@ public interface PlayerService {
void createPlayer(Player player, Team team); void createPlayer(Player player, Team team);
Collection<Player> getFreePlayers(); Collection<Player> getFreePlayers();
void addTeamToPlayer(Player player, Team team);
void removeTeamFromPlayer(Player player, Team team);
} }
package cz.muni.fi.pa165.icehockeymanager.services; package cz.muni.fi.pa165.icehockeymanager.services;
import cz.muni.fi.pa165.icehockeymanager.dao.PlayerDao; import cz.muni.fi.pa165.icehockeymanager.dao.PlayerDao;
import cz.muni.fi.pa165.icehockeymanager.exceptions.PlayerNotInTeamException;
import cz.muni.fi.pa165.icehockeymanager.model.Player; import cz.muni.fi.pa165.icehockeymanager.model.Player;
import cz.muni.fi.pa165.icehockeymanager.model.Team; import cz.muni.fi.pa165.icehockeymanager.model.Team;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -35,4 +36,19 @@ public class PlayerServiceImpl implements PlayerService { ...@@ -35,4 +36,19 @@ public class PlayerServiceImpl implements PlayerService {
public Collection<Player> getFreePlayers() { public Collection<Player> getFreePlayers() {
return playerDao.getAllFreePlayers(); return playerDao.getAllFreePlayers();
} }
@Override
public void addTeamToPlayer(Player player, Team team) {
player.setTeam(team);
playerDao.update(player);
}
@Override
public void removeTeamFromPlayer(Player player, Team team) {
if(!player.getTeam().equals(team)){
throw new PlayerNotInTeamException("Player not in this team");
}
player.setTeam(null);
playerDao.update(player);
}
} }
...@@ -26,5 +26,7 @@ public interface TeamService { ...@@ -26,5 +26,7 @@ public interface TeamService {
*/ */
Optional<Team> getTeam(long id); Optional<Team> getTeam(long id);
void addPlayerToTeam(Player player, Team team); void addPlayerToTeam(Team team, Player player);
void removePlayerFromTeam(Team team, Player player);
} }
package cz.muni.fi.pa165.icehockeymanager.services; package cz.muni.fi.pa165.icehockeymanager.services;
import cz.muni.fi.pa165.icehockeymanager.dao.TeamDao; import cz.muni.fi.pa165.icehockeymanager.dao.TeamDao;
import cz.muni.fi.pa165.icehockeymanager.exceptions.PlayerNotInTeamException;
import cz.muni.fi.pa165.icehockeymanager.model.Player; import cz.muni.fi.pa165.icehockeymanager.model.Player;
import cz.muni.fi.pa165.icehockeymanager.model.Team; import cz.muni.fi.pa165.icehockeymanager.model.Team;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -32,8 +33,17 @@ public class TeamServiceImpl implements TeamService { ...@@ -32,8 +33,17 @@ public class TeamServiceImpl implements TeamService {
} }
@Override @Override
public void addPlayerToTeam(Player player, Team team){ public void addPlayerToTeam(Team team, Player player) {
team.addPlayer(player); team.addPlayer(player);
teamDao.update(team); teamDao.update(team);
} }
@Override
public void removePlayerFromTeam(Team team, Player player) {
if(!team.containsPlayer(player)){
throw new PlayerNotInTeamException("Player not in this team");
}
team.removePlayer(player);
teamDao.update(team);
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment