@@ -190,29 +190,6 @@ async def delete_item(self, item_id: str, partition_key: str) -> None:
190190 self .logger .error ("Failed to delete item from CosmosDB: %s" , str (e ))
191191 raise
192192
193- # Session Operations
194- async def add_session (self , session : Session ) -> None :
195- """Add a session to CosmosDB."""
196- await self .add_item (session )
197-
198- async def get_session (self , session_id : str ) -> Optional [Session ]:
199- """Retrieve a session by session_id."""
200- query = "SELECT * FROM c WHERE c.id=@id AND c.data_type=@data_type"
201- parameters = [
202- {"name" : "@id" , "value" : session_id },
203- {"name" : "@data_type" , "value" : DataType .session },
204- ]
205- results = await self .query_items (query , parameters , Session )
206- return results [0 ] if results else None
207-
208- async def get_all_sessions (self ) -> List [Session ]:
209- """Retrieve all sessions for the user."""
210- query = "SELECT * FROM c WHERE c.user_id=@user_id AND c.data_type=@data_type"
211- parameters = [
212- {"name" : "@user_id" , "value" : self .user_id },
213- {"name" : "@data_type" , "value" : DataType .session },
214- ]
215- return await self .query_items (query , parameters , Session )
216193
217194 # Plan Operations
218195 async def add_plan (self , plan : Plan ) -> None :
@@ -470,12 +447,32 @@ async def get_current_team(self, user_id: str) -> Optional[UserCurrentTeam]:
470447 teams = await self .query_items (query , parameters , UserCurrentTeam )
471448 return teams [0 ] if teams else None
472449
450+
451+
452+ async def delete_current_team (self , user_id : str ) -> bool :
453+ """Delete the current team for a user."""
454+ query = "SELECT c.id, c.session_id FROM c WHERE c.user_id=@user_id AND c.data_type=@data_type"
455+
456+ params = [
457+ {"name" : "@user_id" , "value" : user_id },
458+ {"name" : "@data_type" , "value" : DataType .user_current_team },
459+ ]
460+ items = self .container .query_items (query = query , parameters = params )
461+ print ("Items to delete:" , items )
462+ if items :
463+ async for doc in items :
464+ try :
465+ await self .container .delete_item (doc ["id" ], partition_key = doc ["session_id" ])
466+ except Exception as e :
467+ self .logger .warning ("Failed deleting current team doc %s: %s" , doc .get ("id" ), e )
468+
469+ return True
470+
473471 async def set_current_team (self , current_team : UserCurrentTeam ) -> None :
474472 """Set the current team for a user."""
475473 await self ._ensure_initialized ()
476474 await self .add_item (current_team )
477475
478-
479476 async def update_current_team (self , current_team : UserCurrentTeam ) -> None :
480477 """Update the current team for a user."""
481478 await self ._ensure_initialized ()
0 commit comments