feat: get all users
This commit is contained in:
		@@ -11,6 +11,22 @@ from api.db.tables.account import account_table
 | 
			
		||||
from api.schemas.account.account import User
 | 
			
		||||
from api.schemas.endpoints.account import UserUpdate, Role, Status
 | 
			
		||||
 | 
			
		||||
async def get_all_users_login_and_id(connection: AsyncConnection) -> Optional[User]:
 | 
			
		||||
    """
 | 
			
		||||
    Получает id и login всех юзеров
 | 
			
		||||
    """
 | 
			
		||||
    query = select(account_table.c.id, account_table.c.login)
 | 
			
		||||
 | 
			
		||||
    # Выполняем запрос
 | 
			
		||||
    result = await connection.execute(query)
 | 
			
		||||
 | 
			
		||||
    # Получаем все результаты
 | 
			
		||||
    users = result.fetchall()
 | 
			
		||||
 | 
			
		||||
    user_list = [{'id': user.id, 'login': user.login} for user in users]
 | 
			
		||||
 | 
			
		||||
    return user_list
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def get_user_id(connection: AsyncConnection, id: int) -> Optional[User]:
 | 
			
		||||
    """
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ from sqlalchemy.ext.asyncio import AsyncConnection
 | 
			
		||||
 | 
			
		||||
from api.db.connection.session import get_connection_dep
 | 
			
		||||
 | 
			
		||||
from api.db.logic.account import get_user_id, update_user_id, create_user,get_user_login
 | 
			
		||||
from api.db.logic.account import get_user_id, update_user_id, create_user,get_user_login,get_all_users_login_and_id
 | 
			
		||||
 | 
			
		||||
from api.schemas.account.account import User,Status
 | 
			
		||||
from api.schemas.endpoints.account import UserUpdate
 | 
			
		||||
@@ -30,6 +30,26 @@ api_router = APIRouter(
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.get("/")
 | 
			
		||||
async def get_all_account(
 | 
			
		||||
 | 
			
		||||
                    request: Request,
 | 
			
		||||
                    connection: AsyncConnection = Depends(get_connection_dep)
 | 
			
		||||
                    ):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
    user_list = await get_all_users_login_and_id(connection)
 | 
			
		||||
 | 
			
		||||
    if user_list is None:
 | 
			
		||||
        raise HTTPException(
 | 
			
		||||
            status_code=status.HTTP_404_NOT_FOUND,
 | 
			
		||||
            detail="Accounts not found")
 | 
			
		||||
 | 
			
		||||
    return user_list
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.get("/{user_id}")
 | 
			
		||||
async def get_account(user_id: int,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user