package kickr.web.api; import kickr.web.model.PlayerStatisticData; import io.dropwizard.hibernate.UnitOfWork; import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import kickr.web.model.LeaderBoardData; import kickr.web.model.ScoreData; import kickr.db.dao.ScoreDAO; import kickr.db.entity.PlayerStatistics; import kickr.db.entity.ScoreWithChanges; import support.web.api.AbstractResource; import kickr.web.view.ScoreLeaderboardView; /** * * @author nikku */ @Path("score") public class ScoreResource extends AbstractResource { private final ScoreDAO scoreDao; public ScoreResource(ScoreDAO scoreDao) { this.scoreDao = scoreDao; } @GET @UnitOfWork @Path("leaderboard") public ScoreLeaderboardView getLeaderBoard() { List<ScoreWithChanges> scores = scoreDao.getScoresWithChanges(0, 5); List<PlayerStatistics> playerStatistics = scoreDao.getStatistics(0, 5); return new ScoreLeaderboardView(new LeaderBoardData( ScoreData.fromScores(scores), PlayerStatisticData.fromStatistics(playerStatistics))); } }