package com.sap.pto.services;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.sap.pto.dao.PlayerDAO;
import com.sap.pto.dao.PlayerStatDAO;
import com.sap.pto.dao.TeamDAO;
import com.sap.pto.dao.TeamOfficialDAO;
import com.sap.pto.dao.TeamStatDAO;
import com.sap.pto.dao.entities.Player;
import com.sap.pto.dao.entities.PlayerStat;
import com.sap.pto.dao.entities.Team;
import com.sap.pto.dao.entities.TeamOfficial;
import com.sap.pto.dao.entities.TeamStat;
import com.sap.pto.dao.entities.TeamStatistics;
@Path("/teamservice")
public class TeamService extends BasicService {
@GET
@Path("/teams")
@Produces(MediaType.APPLICATION_JSON)
public List<Team> getAllTeams() {
List<Team> teams = new TeamDAO().getAll();
return teams;
}
@GET
@Path("/details/{id}")
@Produces(MediaType.APPLICATION_JSON)
public TeamStatistics getTeamDetails(@PathParam("id") int teamId) {
Team team = new TeamDAO().getById(teamId);
if (team == null) {
throwNotFound();
}
TeamStatistics allStats = new TeamStatistics(team);
// team
List<TeamStat> teamStats = TeamStatDAO.getForTeam(team);
for (TeamStat teamStat : teamStats) {
teamStat.setTeam(null);
}
allStats.setTeamStatistics(teamStats);
// players
List<Player> players = new PlayerDAO().getByTeam(team);
for (Player player : players) {
List<PlayerStat> playerStats = PlayerStatDAO.getForPlayer(player);
player.setTeam(null);
player.setStatistics(playerStats);
}
allStats.setPlayers(players);
// officials
List<TeamOfficial> officials = new TeamOfficialDAO().getByTeam(team);
for (TeamOfficial teamOfficial : officials) {
teamOfficial.setTeam(null);
}
allStats.setOfficials(officials);
return allStats;
}
}