Bugfixes
This commit is contained in:
parent
d0c3caaf87
commit
421eea19ac
@ -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)
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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}')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user