1+ """HTTP route handlers for the /usuarios resource."""
2+
13from typing import Annotated
24
35from fastapi import APIRouter , Depends , HTTPException , Response , status
1214UserServiceDependency = Annotated [UserService , Depends (get_user_service )]
1315
1416
15- @router .post ("" , response_model = UserResponse , status_code = status .HTTP_201_CREATED )
16- def create_user (payload : UserRequest , user_service : UserServiceDependency ) -> UserResponse :
17+ @router .post (
18+ "" ,
19+ response_model = UserResponse ,
20+ status_code = status .HTTP_201_CREATED ,
21+ )
22+ def create_user (
23+ payload : UserRequest ,
24+ user_service : UserServiceDependency ,
25+ ) -> UserResponse :
26+ """Create a new user and return the created resource."""
1727 try :
1828 user = user_service .create_user (payload .to_command ())
1929 except UserAlreadyExistsError as error :
20- raise HTTPException (status_code = status .HTTP_409_CONFLICT , detail = str (error )) from error
30+ raise HTTPException (
31+ status_code = status .HTTP_409_CONFLICT ,
32+ detail = str (error ),
33+ ) from error
2134
2235 return UserResponse .from_domain (user )
2336
2437
2538@router .get ("" , response_model = list [UserResponse ])
2639def list_users (user_service : UserServiceDependency ) -> list [UserResponse ]:
40+ """Return all registered users."""
2741 users = user_service .list_users ()
2842 return [UserResponse .from_domain (user ) for user in users ]
2943
3044
3145@router .get ("/{usuario_id}" , response_model = UserResponse )
32- def get_user (usuario_id : int , user_service : UserServiceDependency ) -> UserResponse :
46+ def get_user (
47+ usuario_id : int ,
48+ user_service : UserServiceDependency ,
49+ ) -> UserResponse :
50+ """Return a user by ID or raise HTTP 404."""
3351 try :
3452 user = user_service .get_user (usuario_id )
3553 except UserNotFoundError as error :
36- raise HTTPException (status_code = status .HTTP_404_NOT_FOUND , detail = str (error )) from error
54+ raise HTTPException (
55+ status_code = status .HTTP_404_NOT_FOUND ,
56+ detail = str (error ),
57+ ) from error
3758
3859 return UserResponse .from_domain (user )
3960
@@ -44,19 +65,30 @@ def update_user(
4465 payload : UserRequest ,
4566 user_service : UserServiceDependency ,
4667) -> UserResponse :
68+ """Replace an existing user's data or raise HTTP 404."""
4769 try :
4870 user = user_service .update_user (usuario_id , payload .to_command ())
4971 except UserNotFoundError as error :
50- raise HTTPException (status_code = status .HTTP_404_NOT_FOUND , detail = str (error )) from error
72+ raise HTTPException (
73+ status_code = status .HTTP_404_NOT_FOUND ,
74+ detail = str (error ),
75+ ) from error
5176
5277 return UserResponse .from_domain (user )
5378
5479
5580@router .delete ("/{usuario_id}" , status_code = status .HTTP_204_NO_CONTENT )
56- def delete_user (usuario_id : int , user_service : UserServiceDependency ) -> Response :
81+ def delete_user (
82+ usuario_id : int ,
83+ user_service : UserServiceDependency ,
84+ ) -> Response :
85+ """Delete a user by ID or raise HTTP 404."""
5786 try :
5887 user_service .delete_user (usuario_id )
5988 except UserNotFoundError as error :
60- raise HTTPException (status_code = status .HTTP_404_NOT_FOUND , detail = str (error )) from error
89+ raise HTTPException (
90+ status_code = status .HTTP_404_NOT_FOUND ,
91+ detail = str (error ),
92+ ) from error
6193
6294 return Response (status_code = status .HTTP_204_NO_CONTENT )
0 commit comments