11from fastapi import APIRouter , Depends , Request
2+ from apps .system .crud .user import get_user_info
23from apps .system .models .user import user_grid
4+ from apps .system .schemas .system_schema import UserLanguage
35from common .core .deps import CurrentUser , SessionDep
46from common .core .pagination import Paginator
57from common .core .schemas import PaginatedResponse , PaginationParams
810
911
1012@router .get ("/info" )
11- async def user_info (current_user : CurrentUser ):
12- return current_user .to_dict ()
13+ async def user_info (session : SessionDep , current_user : CurrentUser ):
14+ db_user = get_user_info (session = session , user_id = current_user .id )
15+ if not db_user :
16+ return {"message" : "User not found" }
17+ db_user .password = None
18+ return db_user
1319
1420
1521@router .get ("/pager/{pageNum}/{pageSize}" , response_model = PaginatedResponse [user_grid ])
@@ -24,4 +30,17 @@ async def pager(
2430 return await paginator .get_paginated_response (
2531 model = user_grid ,
2632 pagination = pagination ,
27- ** filters )
33+ ** filters )
34+
35+ @router .put ("/language" )
36+ async def langChange (session : SessionDep , current_user : CurrentUser , language : UserLanguage ):
37+ lang = language .language
38+ if lang not in ["zh-CN" , "en" ]:
39+ return {"message" : "Language not supported" }
40+ db_user = get_user_info (session = session , user_id = current_user .id )
41+ if not db_user :
42+ return {"message" : "User not found" }
43+ db_user .language = lang
44+ session .add (db_user )
45+ session .commit ()
46+ return {"message" : "Language changed successfully" , "language" : lang }
0 commit comments