Files
SQLBot/backend/apps/system/api/user.py
T
2025-06-10 16:19:52 +08:00

46 lines
1.6 KiB
Python

from fastapi import APIRouter, Depends, Request
from apps.system.crud.user import get_user_info
from apps.system.models.user import user_grid
from apps.system.schemas.system_schema import UserLanguage
from common.core.deps import CurrentUser, SessionDep
from common.core.pagination import Paginator
from common.core.schemas import PaginatedResponse, PaginationParams
router = APIRouter(tags=["user"], prefix="/user")
@router.get("/info")
async def user_info(session: SessionDep, current_user: CurrentUser):
db_user = get_user_info(session=session, user_id=current_user.id)
if not db_user:
return {"message": "User not found"}
db_user.password = None
return db_user
@router.get("/pager/{pageNum}/{pageSize}", response_model=PaginatedResponse[user_grid])
async def pager(
session: SessionDep,
pageNum: int,
pageSize: int
):
pagination = PaginationParams(page=pageNum, size=pageSize)
paginator = Paginator(session)
filters = {}
return await paginator.get_paginated_response(
model=user_grid,
pagination=pagination,
**filters)
@router.put("/language")
async def langChange(session: SessionDep, current_user: CurrentUser, language: UserLanguage):
lang = language.language
if lang not in ["zh-CN", "en"]:
return {"message": "Language not supported"}
db_user = get_user_info(session=session, user_id=current_user.id)
if not db_user:
return {"message": "User not found"}
db_user.language = lang
session.add(db_user)
session.commit()
return {"message": "Language changed successfully", "language": lang}