diff --git a/api/api/db/logic/account.py b/api/api/db/logic/account.py index ef472e1..7307386 100644 --- a/api/api/db/logic/account.py +++ b/api/api/db/logic/account.py @@ -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]: """ diff --git a/api/api/endpoints/account.py b/api/api/endpoints/account.py index f2a9fcf..15d6307 100644 --- a/api/api/endpoints/account.py +++ b/api/api/endpoints/account.py @@ -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,