From ee434c98f19463bd9d62d5630f251df095647997 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Tue, 13 Jan 2026 14:00:54 -0600 Subject: [PATCH] Fix weekly freeze/thaw automation - API params not being sent Root cause: league_service.update_current_state() was calling self.patch() without use_query_params=True. The API expected query params but received JSON body, so database updates for week/freeze silently failed. Changes: - Add use_query_params=True to league_service.py:99 - Fix service layer violation in transaction_freeze.py - now uses player_service.update_player_team() instead of direct API client - Bump version to 2.25.8 Co-Authored-By: Claude Opus 4.5 --- VERSION | 2 +- services/league_service.py | 2 +- tasks/transaction_freeze.py | 20 +++++++------------- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/VERSION b/VERSION index 7206396..7079d89 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.25.7 +2.25.8 diff --git a/services/league_service.py b/services/league_service.py index 2dd4ed3..04e9ca3 100644 --- a/services/league_service.py +++ b/services/league_service.py @@ -96,7 +96,7 @@ class LeagueService(BaseService[Current]): logger.debug(f"Updating current state id={current_id} (season {current.season})") # Use BaseService patch method - updated_current = await self.patch(current_id, update_data) + updated_current = await self.patch(current_id, update_data, use_query_params=True) if updated_current: logger.info(f"Updated current state id={current_id}: {update_data}") diff --git a/tasks/transaction_freeze.py b/tasks/transaction_freeze.py index 721f34d..4d283c6 100644 --- a/tasks/transaction_freeze.py +++ b/tasks/transaction_freeze.py @@ -13,6 +13,7 @@ from dataclasses import dataclass import discord from discord.ext import commands, tasks +from services import player_service from services.league_service import league_service from services.transaction_service import transaction_service from services.standings_service import standings_service @@ -511,25 +512,18 @@ class TransactionFreezeTask: """ try: self.logger.info( - f"Updating player roster", + "Updating player roster", player_id=player_id, player_name=player_name, new_team_id=new_team_id ) - # Get API client from transaction service - client = await transaction_service.get_client() - - # Execute PATCH request to update player's team - response = await client.patch( - f'players/{player_id}', - params=[('team_id', str(new_team_id))] - ) + updated_player = await player_service.update_player_team(player_id, new_team_id) # Verify response (200 or 204 indicates success) - if response is not None: + if updated_player is not None: self.logger.info( - f"Successfully updated player roster", + "Successfully updated player", player_id=player_id, player_name=player_name, new_team_id=new_team_id @@ -537,7 +531,7 @@ class TransactionFreezeTask: return True else: self.logger.warning( - f"Player update returned no response", + "Player update returned no response", player_id=player_id, player_name=player_name, new_team_id=new_team_id @@ -546,7 +540,7 @@ class TransactionFreezeTask: except Exception as e: self.logger.error( - f"Failed to update player roster", + "Failed to update player roster", player_id=player_id, player_name=player_name, new_team_id=new_team_id,