mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
46 lines
1.6 KiB
Python
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} |