This commit is contained in:
Cal Corum 2024-06-03 12:09:44 -05:00
parent d0c3caaf87
commit 421eea19ac
3 changed files with 39 additions and 2 deletions

View File

@ -41,7 +41,8 @@ class BattingCardList(pydantic.BaseModel):
@router.get('')
async def get_batting_cards(
player_id: list = Query(default=None), player_name: list = Query(default=None),
cardset_id: list = Query(default=None), short_output: bool = False, limit: Optional[int] = None):
cardset_id: list = Query(default=None), short_output: bool = False, limit: Optional[int] = None,
variant: list = Query(default=None)):
all_cards = BattingCard.select()
if player_id is not None:
all_cards = all_cards.where(BattingCard.player_id << player_id)
@ -52,6 +53,8 @@ async def get_batting_cards(
name_list = [x.lower() for x in player_name]
all_players = Player.select().where(fn.lower(Player.p_name) << name_list)
all_cards = all_cards.where(BattingCard.player << all_players)
if variant is not None:
all_cards = all_cards.where(BattingCard.variant << variant)
if limit is not None:
all_cards = all_cards.limit(limit)

View File

@ -188,6 +188,40 @@ async def post_players(players: PlayerList, token: str = Depends(oauth2_scheme))
return f'Inserted {len(new_players)} new MLB players'
@router.post('/one')
async def post_one_player(player: PlayerModel, token: str = Depends(oauth2_scheme)):
if not valid_token(token):
logging.warning(f'Bad Token: {token}')
db.close()
raise HTTPException(
status_code=401,
detail='You are not authorized to post mlb players. This event has been logged.'
)
dupes = MlbPlayer.select().where(
(MlbPlayer.key_fangraphs == player.key_fangraphs) | (MlbPlayer.key_mlbam == player.key_mlbam) |
(MlbPlayer.key_bbref == player.key_bbref)
)
if dupes.count() > 0:
db.close()
raise HTTPException(
status_code=400,
detail=f'{player.first_name} {player.last_name} has a key already in the database'
)
new_player = MlbPlayer(**player.dict())
saved = new_player.save()
if saved == 1:
return_val = model_to_dict(new_player)
db.close()
return return_val
else:
raise HTTPException(
status_code=418,
detail='Well slap my ass and call me a teapot; I could not save that player'
)
@router.delete('/{player_id}')
async def delete_player(player_id: int, token: str = Depends(oauth2_scheme)):
if not valid_token(token):

View File

@ -345,7 +345,7 @@ async def get_team_lineup(team_id: int, difficulty_name: str, pitcher_name: str,
backup_group = CardPosition.select().where(
(CardPosition.position == position) & (CardPosition.player << backup_players)
).order_by(CardPosition.innings.desc())
if difficulty_name in ['minor-league', 'gauntlet-3']:
if difficulty_name in ['minor-league', 'gauntlet-3', 'gauntlet-5']:
pos_group = pos_group.order_by(CardPosition.innings.desc())
for x in pos_group:
logging.debug(f'checking {x.player.p_name} for {position}')