add get users

This commit is contained in:
IluaAir
2025-07-27 12:40:32 +03:00
parent 36dad7b441
commit d3eba77444
4 changed files with 22 additions and 6 deletions

View File

@@ -42,8 +42,10 @@ def get_current_active_user(
ActiveUser = Annotated[TokenData, Depends(get_current_active_user)] ActiveUser = Annotated[TokenData, Depends(get_current_active_user)]
async def get_admin_user(db: sessionDep, current_user: ActiveUser): async def get_admin_user(db: sessionDep, current_user: ActiveUser):
await UserService(db).validate_admin_user(current_user.sub) await UserService(db).validate_admin_user(current_user.sub)
return current_user return current_user
AdminUser = Annotated[TokenData, Depends(get_admin_user)] AdminUser = Annotated[TokenData, Depends(get_admin_user)]

View File

@@ -1,7 +1,9 @@
from fastapi import APIRouter from fastapi import APIRouter
from src.api.dependacies.user_dep import ActiveUser, AdminUser from src.api.dependacies.user_dep import ActiveUser, AdminUser
from src.api.dependacies.db_dep import sessionDep
from src.core.settings import settings from src.core.settings import settings
from src.services.users import UserService
router = APIRouter(prefix=settings.api.v1.users, tags=["Users"]) router = APIRouter(prefix=settings.api.v1.users, tags=["Users"])
@@ -12,6 +14,6 @@ async def get_me(user: ActiveUser):
@router.get("/") @router.get("/")
async def get_all_users(user: AdminUser): async def get_all_users(db: sessionDep, user: AdminUser):
users = [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}] users = await UserService(db).get_all_users()
return {"users": users} return users

View File

@@ -1,6 +1,14 @@
from sqlalchemy import select
from src.models import UsersORM from src.models import UsersORM
from src.repository.base import BaseRepo from src.repository.base import BaseRepo
class UsersRepo(BaseRepo): class UsersRepo(BaseRepo):
model = UsersORM model = UsersORM
async def get_all_users(self):
query = select(self.model)
result = await self.session.execute(query)
models = result.scalars().all()
return models

View File

@@ -22,3 +22,7 @@ class UserService(BaseService):
if not user.is_superuser: if not user.is_superuser:
raise HTTPException(status_code=403, detail="Admin access required") raise HTTPException(status_code=403, detail="Admin access required")
return user return user
async def get_all_users(self) -> list[User]:
users = await self.session.user.get_all_users()
return [User.model_validate(user) for user in users]