feat: Добавлено получение всех пользователей
This commit is contained in:
parent
b8b57e451b
commit
7cb2b21227
@ -12,7 +12,10 @@ class UsersRepository:
|
|||||||
self.db = db
|
self.db = db
|
||||||
|
|
||||||
async def get_all(self) -> Sequence[User]:
|
async def get_all(self) -> Sequence[User]:
|
||||||
stmt = select(User)
|
stmt = (
|
||||||
|
select(User)
|
||||||
|
.options(joinedload(User.role))
|
||||||
|
)
|
||||||
result = await self.db.execute(stmt)
|
result = await self.db.execute(stmt)
|
||||||
return result.scalars().all()
|
return result.scalars().all()
|
||||||
|
|
||||||
|
|||||||
@ -6,12 +6,26 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|||||||
from app.database.session import get_db
|
from app.database.session import get_db
|
||||||
from app.domain.entities.change_password import ChangePasswordEntity
|
from app.domain.entities.change_password import ChangePasswordEntity
|
||||||
from app.domain.entities.user import UserEntity
|
from app.domain.entities.user import UserEntity
|
||||||
from app.infrastructure.dependencies import get_current_user
|
from app.infrastructure.dependencies import get_current_user, require_admin
|
||||||
from app.infrastructure.users_service import UsersService
|
from app.infrastructure.users_service import UsersService
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.get(
|
||||||
|
'/',
|
||||||
|
response_model=list[UserEntity],
|
||||||
|
summary='Return all users',
|
||||||
|
description='Returns a list of all users',
|
||||||
|
)
|
||||||
|
async def get_authenticated_user_data(
|
||||||
|
db: AsyncSession = Depends(get_db),
|
||||||
|
user=Depends(require_admin),
|
||||||
|
):
|
||||||
|
users_service = UsersService(db)
|
||||||
|
return await users_service.get_all_users()
|
||||||
|
|
||||||
|
|
||||||
@router.get(
|
@router.get(
|
||||||
'/my-data/',
|
'/my-data/',
|
||||||
response_model=Optional[UserEntity],
|
response_model=Optional[UserEntity],
|
||||||
|
|||||||
@ -31,6 +31,17 @@ class UsersService:
|
|||||||
|
|
||||||
return user_entity
|
return user_entity
|
||||||
|
|
||||||
|
async def get_all_users(self) -> list[UserEntity]:
|
||||||
|
users = await self.users_repository.get_all()
|
||||||
|
response = []
|
||||||
|
|
||||||
|
for user in users:
|
||||||
|
user_entity = self.model_to_entity(user)
|
||||||
|
user_entity.role = self.role_model_to_entity(user.role)
|
||||||
|
response.append(user_entity)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
async def change_password(self, data: ChangePasswordEntity, current_user_id: int) -> Optional[UserEntity]:
|
async def change_password(self, data: ChangePasswordEntity, current_user_id: int) -> Optional[UserEntity]:
|
||||||
user = await self.users_repository.get_by_id(data.user_id)
|
user = await self.users_repository.get_by_id(data.user_id)
|
||||||
if not user:
|
if not user:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user