11from typing import List
22
3- from api .database . models . users import User
4- from api .schemas . user import UserCreate
3+ from api .schemas . user import UserCreate , UserOut
4+ from api .services . user_service import UserService
55from fastapi import APIRouter
6- from loguru import logger
76
87router = APIRouter ()
98
109
11- @router .get ("/" , response_model = List [UserCreate ])
12- async def get_users () -> List [UserCreate ]:
10+ @router .get ("/" , response_model = List [UserOut ])
11+ async def get_users () -> List [UserOut ]:
1312 """
1413 Retrieve a list of all users.
1514
1615 Returns:
1716 List[User]: A list of User objects.
1817 """
19- return await User .get_all ()
18+ return await UserService () .get_all ()
2019
2120
22- @router .get ("/{user_id}" , response_model = UserCreate )
23- async def get_user (user_id : int ):
21+ @router .get ("/{user_id}" , response_model = UserOut )
22+ async def get_user (user_id : int ) -> UserOut :
2423 """
2524 Retrieve a user by ID.
2625
@@ -30,10 +29,10 @@ async def get_user(user_id: int):
3029 Returns:
3130 User: The User object.
3231 """
33- return await User . get_by_id (user_id )
32+ return await UserService (). get_user (user_id )
3433
3534
36- @router .post ("/" , response_model = UserCreate )
35+ @router .post ("/" , response_model = UserOut )
3736async def create_user (user : UserCreate ):
3837 """
3938 Create a new user.
@@ -44,12 +43,11 @@ async def create_user(user: UserCreate):
4443 Returns:
4544 User: The created User object.
4645 """
47- logger .info (user .model_dump ())
48- return await User .new (** user .model_dump ())
46+ return await UserService ().create_user (user )
4947
5048
5149@router .put ("/{user_id}" , response_model = None )
52- async def update_user (user_id : int , user : UserCreate ):
50+ async def update_user (user_id : int , user : UserCreate ) -> None :
5351 """
5452 Update a user by ID.
5553
@@ -60,16 +58,15 @@ async def update_user(user_id: int, user: UserCreate):
6058 Returns:
6159 User: The updated User object.
6260 """
63- return await User . update_by_id (user_id , ** user . model_dump () )
61+ return await UserService (). update_user (user_id , user )
6462
6563
66- @router .delete ("/{user_id}" )
67- async def delete_user (user_id : int ):
64+ @router .delete ("/{user_id}" , response_model = None )
65+ async def delete_user (user_id : int ) -> None :
6866 """
6967 Delete a user by ID.
7068
7169 Args:
7270 user_id (int): The ID of the user.
7371 """
74- await User .delete_by_id (user_id )
75- return {"message" : "User deleted successfully" }
72+ return await UserService ().delete_user (user_id )
0 commit comments