From e85cac61df14c2e098c5e66d1763176710e78666 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Wed, 11 Jun 2025 00:33:09 -0500 Subject: [PATCH] Fix dupe check on sbaplayers --- app/routers_v3/sbaplayers.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/routers_v3/sbaplayers.py b/app/routers_v3/sbaplayers.py index b599c83..3657754 100644 --- a/app/routers_v3/sbaplayers.py +++ b/app/routers_v3/sbaplayers.py @@ -20,10 +20,10 @@ router = APIRouter( class SbaPlayerModel(pydantic.BaseModel): first_name: str last_name: str - key_mlbam: int = None - key_fangraphs: int = None - key_bbref: str = None - key_retro: str = None + key_mlbam: Optional[int] = None + key_fangraphs: Optional[int] = None + key_bbref: Optional[str] = None + key_retro: Optional[str] = None class PlayerList(pydantic.BaseModel): @@ -166,17 +166,18 @@ async def post_players(players: PlayerList, token: str = Depends(oauth2_scheme)) new_players = [] for x in players.players: dupes = SbaPlayer.select().where( - (SbaPlayer.key_fangraphs == x.key_fangraphs) | (SbaPlayer.key_mlbam == x.key_mlbam) | - (SbaPlayer.key_retro == x.key_retro) | (SbaPlayer.key_bbref == x.key_bbref) + ((SbaPlayer.key_fangraphs == x.key_fangraphs) & (x.key_fangraphs is not None)) | ((SbaPlayer.key_mlbam == x.key_mlbam) & (x.key_mlbam is not None)) | + ((SbaPlayer.key_retro == x.key_retro) & (x.key_retro is not None)) | ((SbaPlayer.key_bbref == x.key_bbref) & (x.key_bbref is not None)) ) if dupes.count() > 0: + logger.error(f'Found a dupe for {x}') db.close() raise HTTPException( status_code=400, detail=f'{x.first_name} {x.last_name} has a key already in the database' ) - new_players.append(x.dict()) + new_players.append(x.model_dump()) with db.atomic(): for batch in chunked(new_players, 15):