Fix dupe check on sbaplayers
This commit is contained in:
parent
1d652ee5fa
commit
e85cac61df
@ -20,10 +20,10 @@ router = APIRouter(
|
|||||||
class SbaPlayerModel(pydantic.BaseModel):
|
class SbaPlayerModel(pydantic.BaseModel):
|
||||||
first_name: str
|
first_name: str
|
||||||
last_name: str
|
last_name: str
|
||||||
key_mlbam: int = None
|
key_mlbam: Optional[int] = None
|
||||||
key_fangraphs: int = None
|
key_fangraphs: Optional[int] = None
|
||||||
key_bbref: str = None
|
key_bbref: Optional[str] = None
|
||||||
key_retro: str = None
|
key_retro: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
class PlayerList(pydantic.BaseModel):
|
class PlayerList(pydantic.BaseModel):
|
||||||
@ -166,17 +166,18 @@ async def post_players(players: PlayerList, token: str = Depends(oauth2_scheme))
|
|||||||
new_players = []
|
new_players = []
|
||||||
for x in players.players:
|
for x in players.players:
|
||||||
dupes = SbaPlayer.select().where(
|
dupes = SbaPlayer.select().where(
|
||||||
(SbaPlayer.key_fangraphs == x.key_fangraphs) | (SbaPlayer.key_mlbam == x.key_mlbam) |
|
((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) | (SbaPlayer.key_bbref == x.key_bbref)
|
((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:
|
if dupes.count() > 0:
|
||||||
|
logger.error(f'Found a dupe for {x}')
|
||||||
db.close()
|
db.close()
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=400,
|
status_code=400,
|
||||||
detail=f'{x.first_name} {x.last_name} has a key already in the database'
|
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():
|
with db.atomic():
|
||||||
for batch in chunked(new_players, 15):
|
for batch in chunked(new_players, 15):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user