add wpa sort to plays
This commit is contained in:
parent
cc3ff1d071
commit
147b77b851
@ -123,8 +123,8 @@ 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),
|
||||
double: Optional[int] = None, triple: Optional[int] = None, homerun: Optional[int] = None,
|
||||
sb: Optional[int] = None, cs: Optional[int] = None,
|
||||
short_output: Optional[bool] = False, limit: Optional[int] = 200):
|
||||
sb: Optional[int] = None, cs: Optional[int] = None, manager_id: list = Query(default=None),
|
||||
short_output: Optional[bool] = False, sort: Optional[str] = None, limit: Optional[int] = 200):
|
||||
all_plays = StratPlay.select()
|
||||
|
||||
if game_id is not None:
|
||||
@ -170,12 +170,22 @@ async def get_plays(
|
||||
all_plays = all_plays.where(StratPlay.sb == sb)
|
||||
if cs is not None:
|
||||
all_plays = all_plays.where(StratPlay.cs == cs)
|
||||
if manager_id is not None:
|
||||
all_games = StratGame.select().where(
|
||||
(StratGame.away_manager_id << manager_id) | (StratGame.home_manager_id << manager_id)
|
||||
)
|
||||
all_plays = all_plays.where(StratPlay.game << all_games)
|
||||
|
||||
if limit > 5000:
|
||||
limit = 5000
|
||||
elif limit < 1:
|
||||
limit = 1
|
||||
|
||||
if sort == 'wpa-desc':
|
||||
all_plays = all_plays.order_by(-fn.ABS(StratPlay.wpa))
|
||||
if sort == 'wpa-asc':
|
||||
all_plays = all_plays.order_by(fn.ABS(StratPlay.wpa))
|
||||
|
||||
all_plays = all_plays.limit(limit)
|
||||
|
||||
return_plays = {
|
||||
@ -186,6 +196,16 @@ async def get_plays(
|
||||
return return_plays
|
||||
|
||||
|
||||
@router.get('/{play_id}')
|
||||
async def get_one_play(play_id: int):
|
||||
if StratPlay.get_or_none(StratPlay.id == play_id) is None:
|
||||
db.close()
|
||||
raise HTTPException(status_code=404, detail=f'Play ID {play_id} not found')
|
||||
r_play = model_to_dict(StratPlay.get_by_id(play_id))
|
||||
db.close()
|
||||
return r_play
|
||||
|
||||
|
||||
@router.patch('/{play_id}')
|
||||
async def patch_play(play_id: int, new_play: PlayModel, token: str = Depends(oauth2_scheme)):
|
||||
if not valid_token(token):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user