feat: Backend i18n

This commit is contained in:
fit2cloud-chenyw
2025-07-07 14:16:05 +08:00
parent cd26d6594e
commit 17fd6ffbf7
8 changed files with 124 additions and 9 deletions
+15 -5
View File
@@ -1,14 +1,18 @@
from fastapi import APIRouter
from sqlmodel import select
from apps.system.models.system_model import WorkspaceBase, WorkspaceEditor, WorkspaceModel
from common.core.deps import SessionDep
from common.core.deps import SessionDep, Trans
from common.utils.time import get_timestamp
router = APIRouter(tags=["system/workspace"], prefix="/system/workspace")
@router.get("", response_model=list[WorkspaceModel])
async def query(session: SessionDep):
return session.exec(select(WorkspaceModel).order_by(WorkspaceModel.create_time)).all()
async def query(session: SessionDep, trans: Trans):
list_result = session.exec(select(WorkspaceModel).order_by(WorkspaceModel.create_time)).all()
for ws in list_result:
if ws.name.startswith('i18n'):
ws.name = trans(ws.name)
return list_result
@router.post("")
async def add(session: SessionDep, creator: WorkspaceBase):
@@ -29,10 +33,12 @@ async def update(session: SessionDep, editor: WorkspaceEditor):
session.commit()
@router.get("/{id}", response_model=WorkspaceModel)
async def get_one(session: SessionDep, id: int):
async def get_one(session: SessionDep, trans: Trans, id: int):
db_model = session.get(WorkspaceModel, id)
if not db_model:
raise ValueError(f"WorkspaceModel with id {id} not found")
if db_model.name.startswith('i18n'):
db_model.name = trans(db_model.name)
return db_model
@router.delete("/{id}")
@@ -41,4 +47,8 @@ async def delete(session: SessionDep, id: int):
if not db_model:
raise ValueError(f"WorkspaceModel with id {id} not found")
session.delete(db_model)
session.commit()
session.commit()
@router.post("/user/{id}")
async def bindUser(session: SessionDep, user_id: int):
pass