feat: Добавлено получение всех пользователей
This commit is contained in:
parent
b8b57e451b
commit
7cb2b21227
@ -12,7 +12,10 @@ class UsersRepository:
|
||||
self.db = db
|
||||
|
||||
async def get_all(self) -> Sequence[User]:
|
||||
stmt = select(User)
|
||||
stmt = (
|
||||
select(User)
|
||||
.options(joinedload(User.role))
|
||||
)
|
||||
result = await self.db.execute(stmt)
|
||||
return result.scalars().all()
|
||||
|
||||
|
||||
@ -6,12 +6,26 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from app.database.session import get_db
|
||||
from app.domain.entities.change_password import ChangePasswordEntity
|
||||
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
|
||||
|
||||
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(
|
||||
'/my-data/',
|
||||
response_model=Optional[UserEntity],
|
||||
|
||||
@ -31,6 +31,17 @@ class UsersService:
|
||||
|
||||
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]:
|
||||
user = await self.users_repository.get_by_id(data.user_id)
|
||||
if not user:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user