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)]
|
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)]
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user