fix: Replace fragile locals() pattern in PATCH endpoints #11

Merged
cal merged 2 commits from fix/patch-endpoint-locals-bug into main 2026-02-12 15:37:11 +00:00
3 changed files with 26 additions and 12 deletions

View File

@ -1 +1 @@
2.6.0
2.6.1

View File

@ -117,12 +117,20 @@ async def patch_player(
):
"""Patch a player (partial update)."""
# Build dict of provided fields
# IMPORTANT: Capture locals() BEFORE creating data dict to avoid including 'data' itself
locals_dict = locals()
data = {}
for key, value in locals_dict.items():
if key not in ('player_id', 'token', 'locals_dict') and value is not None:
data[key] = value
data = {
key: value
for key, value in {
'name': name, 'wara': wara, 'image': image, 'image2': image2,
'team_id': team_id, 'season': season,
'pos_1': pos_1, 'pos_2': pos_2, 'pos_3': pos_3, 'pos_4': pos_4,
'pos_5': pos_5, 'pos_6': pos_6, 'pos_7': pos_7, 'pos_8': pos_8,
'vanity_card': vanity_card, 'headshot': headshot,
'il_return': il_return, 'demotion_week': demotion_week,
'strat_code': strat_code, 'bbref_id': bbref_id,
'injury_rating': injury_rating, 'sbaref_id': sbaref_id,
}.items()
if value is not None
}
return PlayerService.patch_player(player_id, data, token)

View File

@ -92,11 +92,17 @@ async def patch_team(
):
"""Patch a team (partial update)."""
# Build dict of provided fields
data = {}
locals_dict = locals()
for key, value in locals_dict.items():
if key not in ('team_id', 'token') and value is not None:
data[key] = value
data = {
key: value
for key, value in {
'manager1_id': manager1_id, 'manager2_id': manager2_id,
'gmid': gmid, 'gmid2': gmid2, 'mascot': mascot,
'stadium': stadium, 'thumbnail': thumbnail, 'color': color,
'abbrev': abbrev, 'sname': sname, 'lname': lname,
'dice_color': dice_color, 'division_id': division_id,
}.items()
if value is not None
}
return TeamService.update_team(team_id, data, token)