add get users
This commit is contained in:
@@ -42,8 +42,10 @@ def get_current_active_user(
|
||||
|
||||
ActiveUser = Annotated[TokenData, Depends(get_current_active_user)]
|
||||
|
||||
|
||||
async def get_admin_user(db: sessionDep, current_user: ActiveUser):
|
||||
await UserService(db).validate_admin_user(current_user.sub)
|
||||
return current_user
|
||||
|
||||
|
||||
AdminUser = Annotated[TokenData, Depends(get_admin_user)]
|
||||
@@ -1,7 +1,9 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
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.services.users import UserService
|
||||
|
||||
router = APIRouter(prefix=settings.api.v1.users, tags=["Users"])
|
||||
|
||||
@@ -12,6 +14,6 @@ async def get_me(user: ActiveUser):
|
||||
|
||||
|
||||
@router.get("/")
|
||||
async def get_all_users(user: AdminUser):
|
||||
users = [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]
|
||||
return {"users": users}
|
||||
async def get_all_users(db: sessionDep, user: AdminUser):
|
||||
users = await UserService(db).get_all_users()
|
||||
return users
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
from sqlalchemy import select
|
||||
|
||||
from src.models import UsersORM
|
||||
from src.repository.base import BaseRepo
|
||||
|
||||
|
||||
class UsersRepo(BaseRepo):
|
||||
model = UsersORM
|
||||
|
||||
async def get_all_users(self):
|
||||
query = select(self.model)
|
||||
result = await self.session.execute(query)
|
||||
models = result.scalars().all()
|
||||
return models
|
||||
|
||||
@@ -22,3 +22,7 @@ class UserService(BaseService):
|
||||
if not user.is_superuser:
|
||||
raise HTTPException(status_code=403, detail="Admin access required")
|
||||
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]
|
||||
|
||||
Reference in New Issue
Block a user