@@ -28,19 +28,19 @@ async def login_with_google(request: LoginRequest) -> ApiResponse[AuthResponse]:
2828 """Google OAuth login with enhanced error handling"""
2929 try :
3030 logger .info ("Received Google OAuth login request" )
31-
31+
3232 # Validate request
3333 if not request .google_token or not request .google_token .strip ():
3434 logger .warning ("Empty Google token received" )
3535 raise HTTPException (status_code = 400 , detail = "Google token is required" )
36-
36+
3737 user , access_token , refresh_token , is_new_user = auth_service .login_with_google (
3838 request .google_token .strip ()
3939 )
4040
4141 # Convert UserInDB to UserPublic for API response
4242 public_user = UserPublic .from_db_user (user )
43-
43+
4444 # Convert to response format expected by frontend
4545 user_response = User (
4646 id = public_user .id ,
@@ -58,11 +58,17 @@ async def login_with_google(request: LoginRequest) -> ApiResponse[AuthResponse]:
5858 expires_in = auth_service .access_token_expire_minutes * 60 ,
5959 )
6060
61- logger .info (f"Google OAuth login successful for user: { user .email } , is_new_user: { is_new_user } " )
61+ logger .info (
62+ f"Google OAuth login successful for user: { user .email } , is_new_user: { is_new_user } "
63+ )
6264 return ApiResponse (
63- success = True ,
65+ success = True ,
6466 data = auth_response ,
65- message = "Login successful" if not is_new_user else "Account created and login successful"
67+ message = (
68+ "Login successful"
69+ if not is_new_user
70+ else "Account created and login successful"
71+ ),
6672 )
6773
6874 except ValueError as e :
@@ -74,14 +80,16 @@ async def login_with_google(request: LoginRequest) -> ApiResponse[AuthResponse]:
7480
7581
7682@router .get ("/me" )
77- async def get_current_user (token : str = Depends (get_current_user_token )) -> ApiResponse [User ]:
83+ async def get_current_user (
84+ token : str = Depends (get_current_user_token ),
85+ ) -> ApiResponse [User ]:
7886 """Get current user information with enhanced error handling"""
7987 try :
8088 logger .info ("Received current user request" )
81-
89+
8290 user = auth_service .get_current_user (token )
8391 public_user = UserPublic .from_db_user (user )
84-
92+
8593 user_response = User (
8694 id = public_user .id ,
8795 email = public_user .email ,
@@ -96,38 +104,44 @@ async def get_current_user(token: str = Depends(get_current_user_token)) -> ApiR
96104
97105 except jwt .InvalidTokenError as e :
98106 logger .warning (f"Invalid token in current user request: { str (e )} " )
99- raise HTTPException (status_code = 401 , detail = f"Invalid or expired token: { str (e )} " )
107+ raise HTTPException (
108+ status_code = 401 , detail = f"Invalid or expired token: { str (e )} "
109+ )
100110 except Exception as e :
101111 logger .error (f"Current user request failed: { str (e )} " )
102- raise HTTPException (status_code = 500 , detail = f"Failed to get user information: { str (e )} " )
112+ raise HTTPException (
113+ status_code = 500 , detail = f"Failed to get user information: { str (e )} "
114+ )
103115
104116
105117@router .post ("/logout" )
106118async def logout (token : str = Depends (get_current_user_token )) -> ApiResponse [dict ]:
107119 """Logout current user with enhanced logging"""
108120 try :
109121 logger .info ("Received logout request" )
110-
122+
111123 # Verify token and get user for logging
112124 user = auth_service .get_current_user (token )
113-
125+
114126 # Revoke tokens (placeholder implementation)
115127 success = auth_service .revoke_user_tokens (str (user .id ))
116-
128+
117129 if success :
118130 logger .info (f"Logout successful for user: { user .email } " )
119131 return ApiResponse (
120- success = True ,
132+ success = True ,
121133 data = {"message" : "Logged out successfully" },
122- message = "You have been logged out"
134+ message = "You have been logged out" ,
123135 )
124136 else :
125137 logger .error (f"Token revocation failed for user: { user .email } " )
126138 raise HTTPException (status_code = 500 , detail = "Logout failed" )
127139
128140 except jwt .InvalidTokenError as e :
129141 logger .warning (f"Invalid token in logout request: { str (e )} " )
130- raise HTTPException (status_code = 401 , detail = f"Invalid or expired token: { str (e )} " )
142+ raise HTTPException (
143+ status_code = 401 , detail = f"Invalid or expired token: { str (e )} "
144+ )
131145 except Exception as e :
132146 logger .error (f"Logout failed: { str (e )} " )
133147 raise HTTPException (status_code = 500 , detail = f"Logout failed: { str (e )} " )
@@ -138,15 +152,17 @@ async def refresh_token(request: dict) -> ApiResponse[AuthResponse]:
138152 """Refresh access token with enhanced validation"""
139153 try :
140154 logger .info ("Received token refresh request" )
141-
155+
142156 # Validate request
143157 refresh_token = request .get ("refresh_token" )
144158 if not refresh_token or not refresh_token .strip ():
145159 logger .warning ("Empty refresh token received" )
146160 raise HTTPException (status_code = 400 , detail = "Refresh token is required" )
147-
148- new_access_token , user = auth_service .refresh_access_token (refresh_token .strip ())
149-
161+
162+ new_access_token , user = auth_service .refresh_access_token (
163+ refresh_token .strip ()
164+ )
165+
150166 # Convert to response format
151167 public_user = UserPublic .from_db_user (user )
152168 user_response = User (
@@ -167,14 +183,14 @@ async def refresh_token(request: dict) -> ApiResponse[AuthResponse]:
167183
168184 logger .info (f"Token refresh successful for user: { user .email } " )
169185 return ApiResponse (
170- success = True ,
171- data = auth_response ,
172- message = "Token refreshed successfully"
186+ success = True , data = auth_response , message = "Token refreshed successfully"
173187 )
174188
175189 except jwt .InvalidTokenError as e :
176190 logger .warning (f"Invalid refresh token: { str (e )} " )
177- raise HTTPException (status_code = 401 , detail = f"Invalid or expired refresh token: { str (e )} " )
191+ raise HTTPException (
192+ status_code = 401 , detail = f"Invalid or expired refresh token: { str (e )} "
193+ )
178194 except Exception as e :
179195 logger .error (f"Token refresh failed: { str (e )} " )
180196 raise HTTPException (status_code = 500 , detail = f"Token refresh failed: { str (e )} " )
@@ -185,22 +201,22 @@ async def auth_health_check() -> ApiResponse[dict]:
185201 """Enhanced authentication service health check"""
186202 try :
187203 logger .info ("Received auth health check request" )
188-
204+
189205 health_data = auth_service .health_check ()
190-
206+
191207 # Determine HTTP status based on health
192208 if health_data .get ("status" ) == "healthy" :
193209 logger .info ("Auth health check passed" )
194210 return ApiResponse (
195211 success = True ,
196212 data = health_data ,
197- message = "Authentication service is healthy"
213+ message = "Authentication service is healthy" ,
198214 )
199215 else :
200216 logger .warning (f"Auth health check failed: { health_data } " )
201217 raise HTTPException (
202- status_code = 503 ,
203- detail = f"Authentication service is unhealthy: { health_data .get ('error' , 'Unknown error' )} "
218+ status_code = 503 ,
219+ detail = f"Authentication service is unhealthy: { health_data .get ('error' , 'Unknown error' )} " ,
204220 )
205221
206222 except Exception as e :
0 commit comments