diff --git a/core/data/schema/user.py b/core/data/schema/user.py index 127d8bf..f7fffeb 100644 --- a/core/data/schema/user.py +++ b/core/data/schema/user.py @@ -139,8 +139,8 @@ class UserData(BaseData): result = await self.execute(aime_user.select(aime_user.c.username == username)) if result: return result.fetchone() - - async def acquire_lock_for_game(self, user_id: int, game: str, extra: dict | None = None): + + async def check_lock_for_game(self, user_id: int, game: str): sql = game_locks.select( (game_locks.c.user == user_id) & (game_locks.c.game == game) @@ -150,6 +150,14 @@ class UserData(BaseData): if result: return result.fetchone() + return None + + async def acquire_lock_for_game(self, user_id: int, game: str, extra: dict | None = None): + result = await self.check_lock_for_game(user_id, game) + + if result is not None: + return result + sql = ( insert(game_locks) .values(user=user_id, game=game, extra=extra)