Exemple #1
0
// ListPlayersForSeason is a http handler that returns a list of all the
// players active during the given season.
// TODO(jackson): This endpoint isn't strictly correct, because if players
// take a year off, we'll incorrectly include them in that year.
func (s *Server) ListPlayersForSeason(ctx context.Context, rw http.ResponseWriter, req *http.Request, ps parameterSet) (interface{}, error) {
	var season data.Season
	err := season.UnmarshalText([]byte(ps["season"]))
	if err != nil {
		return nil, ErrBadRequest("Invalid season identifier")
	}

	const q = `
		SELECT * FROM players
		WHERE NOT dleague AND career_start <= ? AND career_end >= ?
		ORDER BY last_name, first_name ASC
	`

	var players []*data.PlayerDetails
	err = s.db.DB.Select(&players, q, season.SpringYear(), season.FallYear())
	if err != nil {
		return nil, err
	}
	return players, nil
}