Files
taskncoffee/src/api/v1/users.py
2025-08-16 11:52:53 +03:00

50 lines
1.2 KiB
Python

from fastapi import APIRouter, Body
from src.api.dependacies.db_dep import sessionDep
from src.api.dependacies.user_dep import (
ActiveUser,
AdminUser,
OwnerDep,
)
from src.core.settings import settings
from src.schemas.users import UserUpdate
from src.services.users import UserService
router = APIRouter(prefix=settings.api.v1.users, tags=["Users"])
@router.get("/me")
async def get_me(user: ActiveUser):
return user
@router.get("/")
async def get_all_users(session: sessionDep, _: AdminUser):
users = await UserService(session).get_all_users()
return users
@router.get("/{id}")
async def get_user_by_id(session: sessionDep, id: int, _: OwnerDep):
user = await UserService(session).get_user_by_filter_or_raise(id=id)
return user
@router.patch("/{id}")
async def patch_user(
session: sessionDep,
id: int,
_: OwnerDep,
user_update: UserUpdate = Body(),
):
updated_user = await UserService(session).update_user(
id=id, update_data=user_update
)
return updated_user
@router.delete("/{id}")
async def delete_user(session: sessionDep, id: int, _: AdminUser):
await UserService(session).delete_user(id)
return {"message": "User deleted successfully"}