1- import uuid
1+ import logging
22from typing import Any
33
44from fastapi import APIRouter , Depends
2626from app .utils import generate_new_account_email , send_email
2727from app .core .exception_handlers import HTTPException
2828
29+ logger = logging .getLogger (__name__ )
2930router = APIRouter (prefix = "/users" , tags = ["users" ])
3031
3132
@@ -49,6 +50,9 @@ def read_users(session: SessionDep, skip: int = 0, limit: int = 100) -> Any:
4950)
5051def create_user_endpoint (* , session : SessionDep , user_in : UserCreate ) -> Any :
5152 if get_user_by_email (session = session , email = user_in .email ):
53+ logger .error (
54+ f"[create_user_endpoint] Attempting to create user with existing email | email: { user_in .email } "
55+ )
5256 raise HTTPException (
5357 status_code = 400 ,
5458 detail = "The user with this email already exists in the system." ,
@@ -75,6 +79,9 @@ def update_user_me(
7579 if user_in .email :
7680 existing_user = get_user_by_email (session = session , email = user_in .email )
7781 if existing_user and existing_user .id != current_user .id :
82+ logger .error (
83+ f"[update_user_me] Attempting to update user with existing email | email: { user_in .email } , user_id: { current_user .id } "
84+ )
7885 raise HTTPException (
7986 status_code = 409 , detail = "User with this email already exists"
8087 )
@@ -83,6 +90,7 @@ def update_user_me(
8390 session .add (current_user )
8491 session .commit ()
8592 session .refresh (current_user )
93+ logger .info (f"[update_user_me] User updated | user_id: { current_user .id } " )
8694 return current_user
8795
8896
@@ -102,6 +110,7 @@ def update_password_me(
102110 current_user .hashed_password = get_password_hash (body .new_password )
103111 session .add (current_user )
104112 session .commit ()
113+ logger .info (f"[update_password_me] Password updated | user_id: { current_user .id } " )
105114 return Message (message = "Password updated successfully" )
106115
107116
@@ -113,11 +122,15 @@ def read_user_me(current_user: CurrentUser) -> Any:
113122@router .delete ("/me" , response_model = Message )
114123def delete_user_me (session : SessionDep , current_user : CurrentUser ) -> Any :
115124 if current_user .is_superuser :
125+ logger .error (
126+ f"[delete_user_me] Attempting to delete superuser account by itself | user_id: { current_user .id } "
127+ )
116128 raise HTTPException (
117129 status_code = 403 , detail = "Super users are not allowed to delete themselves"
118130 )
119131 session .delete (current_user )
120132 session .commit ()
133+ logger .info (f"[delete_user_me] User deleted | user_id: { current_user .id } " )
121134 return Message (message = "User deleted successfully" )
122135
123136
@@ -131,6 +144,9 @@ def register_user(session: SessionDep, user_in: UserRegister) -> Any:
131144 This endpoint allows the registration of a new user and is accessible only by a superuser.
132145 """
133146 if get_user_by_email (session = session , email = user_in .email ):
147+ logger .error (
148+ f"[register_user] Attempting to create user with existing email | email: { user_in .email } "
149+ )
134150 raise HTTPException (
135151 status_code = 400 ,
136152 detail = "The user with this email already exists in the system" ,
@@ -171,6 +187,7 @@ def update_user_endpoint(
171187) -> Any :
172188 db_user = session .get (User , user_id )
173189 if not db_user :
190+ logger .error (f"[update_user_endpoint] User not found | user_id: { user_id } " )
174191 raise HTTPException (
175192 status_code = 404 ,
176193 detail = "The user with this id does not exist in the system" ,
@@ -179,6 +196,9 @@ def update_user_endpoint(
179196 if user_in .email :
180197 existing_user = get_user_by_email (session = session , email = user_in .email )
181198 if existing_user and existing_user .id != user_id :
199+ logger .error (
200+ f"[update_user_endpoint] Attempting to update user with existing email | email: { user_in .email } , user_id: { user_id } "
201+ )
182202 raise HTTPException (
183203 status_code = 409 , detail = "User with this email already exists"
184204 )
@@ -196,13 +216,18 @@ def delete_user(
196216) -> Message :
197217 user = session .get (User , user_id )
198218 if not user :
219+ logger .error (f"[delete_user] User not found | user_id: { user_id } " )
199220 raise HTTPException (status_code = 404 , detail = "User not found" )
200221
201222 if user == current_user :
223+ logger .error (
224+ f"[delete_user] Attempting to delete self by superuser | user_id: { current_user .id } "
225+ )
202226 raise HTTPException (
203227 status_code = 403 , detail = "Super users are not allowed to delete themselves"
204228 )
205229
206230 session .delete (user )
207231 session .commit ()
232+ logger .info (f"[delete_user] User deleted | user_id: { user .id } " )
208233 return Message (message = "User deleted successfully" )
0 commit comments