Exemplo n.º 1
0
def get_active_game(user: u.User) -> GameModel or None:
    if user.cached_game is not None:
        return user.cached_game

    with db.connect() as conn, conn.cursor() as cursor:
        cursor.execute(f"""
            SELECT game FROM players WHERE user = {user.id} ORDER BY id DESC LIMIT 1;
        """)
        result = cursor.fetchone()
        if result is None:
            return None
        game = get_by_id(result[0])
        if game is None:
            return None
        user.cached_game = game if game.can_play else None
        return user.cached_game