Param updates to /plays

This commit is contained in:
Cal Corum 2023-12-04 13:38:53 -06:00
parent 342eb50362
commit 1168d7abaa
2 changed files with 13 additions and 5 deletions

View File

@ -4,7 +4,7 @@ import copy
import logging
import pydantic
from ..db_engine import db, Decision, StratGame, Player, model_to_dict, chunked, fn
from ..db_engine import db, Decision, StratGame, Player, model_to_dict, chunked, fn, Team
from ..dependencies import oauth2_scheme, valid_token, LOG_DATA
logging.basicConfig(
@ -62,6 +62,12 @@ async def get_decisions(
all_dec = all_dec.where(Decision.game_id << game_id)
if player_id is not None:
all_dec = all_dec.where(Decision.pitcher << player_id)
# # Need to allow for split-season stats
# if team_id is not None:
# all_teams = Team.select().where(Team.id << team_id)
# all_games = StratGame.select().where(
# (StratGame.away_team << all_teams) | (StratGame.home_team << all_teams))
# all_dec = all_dec.where(Decision.game << all_games)
if team_id is not None:
all_players = Player.select().where(Player.team_id << team_id)
all_dec = all_dec.where(Decision.pitcher << all_players)

View File

@ -126,7 +126,7 @@ async def get_plays(
defender_id: list = Query(default=None), runner_id: list = Query(default=None),
offense_team_id: list = Query(default=None), defense_team_id: list = Query(default=None),
hit: Optional[int] = None, double: Optional[int] = None, triple: Optional[int] = None,
homerun: Optional[int] = None, play_num: list = Query(default=None),
homerun: Optional[int] = None, play_num: list = Query(default=None), error: list = Query(default=None),
sb: Optional[int] = None, cs: Optional[int] = None, manager_id: list = Query(default=None),
run: Optional[int] = None, e_run: Optional[int] = None, rbi: list = Query(default=None),
outs: list = Query(default=None), wild_pitch: Optional[int] = None, is_final_out: Optional[bool] = None,
@ -208,6 +208,8 @@ async def get_plays(
all_plays = all_plays.where(StratPlay.rbi << rbi)
if outs is not None:
all_plays = all_plays.where(StratPlay.outs << outs)
if error is not None:
all_plays = all_plays.where(StratPlay.error << error)
if manager_id is not None:
all_games = StratGame.select().where(
(StratGame.away_manager_id << manager_id) | (StratGame.home_manager_id << manager_id)
@ -265,7 +267,7 @@ async def get_batting_totals(
group_by: Literal['team', 'player', 'playerteam', 'playergame', 'teamgame', 'league'] = 'player',
min_pa: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
obc: list = Query(default=None), risp: Optional[bool] = None, inning: list = Query(default=None),
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False,
sort: Optional[str] = None, limit: Optional[int] = 200, short_output: Optional[bool] = False,
page_num: Optional[int] = 1):
season_games = StratGame.select()
if season is not None:
@ -514,7 +516,7 @@ async def get_pitching_totals(
group_by: Literal['team', 'player', 'playerteam', 'playergame', 'teamgame', 'league'] = 'player',
min_pa: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
obc: list = Query(default=None), risp: Optional[bool] = None, inning: list = Query(default=None),
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False,
sort: Optional[str] = None, limit: Optional[int] = 200, short_output: Optional[bool] = False,
csv: Optional[bool] = False, page_num: Optional[int] = 1):
season_games = StratGame.select()
if season is not None:
@ -739,7 +741,7 @@ async def get_fielding_totals(
group_by: Literal['team', 'player', 'playerteam', 'playerposition', 'teamposition', 'playerpositiongame',
'playergame'] = 'player',
min_ch: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False,
sort: Optional[str] = None, limit: Optional[int] = 200, short_output: Optional[bool] = False,
page_num: Optional[int] = 1):
season_games = StratGame.select()
if season is not None: