| 1234567891011121314151617181920212223242526272829303132333435 |
- import sqlite3
- from fastapi import APIRouter, Depends, HTTPException
- from app.dependencies.admin_auth import get_current_admin
- from app.schemas.local_config_schema import LocalConfigPutRequest, LocalConfigResponse
- from app.services import local_config_service
- router = APIRouter(prefix="/api/admin/local-config", tags=["本地配置"])
- @router.get("", response_model=LocalConfigResponse)
- def get_local_config(_admin=Depends(get_current_admin)):
- result = local_config_service.get_all()
- return LocalConfigResponse(data=result)
- @router.put("", response_model=LocalConfigResponse)
- def update_local_config(
- body: LocalConfigPutRequest,
- _admin=Depends(get_current_admin),
- ):
- data = {}
- for field, value in body.model_dump(exclude_none=True).items():
- if isinstance(value, bool):
- data[field] = "true" if value else "false"
- else:
- data[field] = str(value)
- try:
- local_config_service.upsert_many(data)
- except sqlite3.Error:
- raise HTTPException(status_code=500, detail="配置保存失败,请稍后重试")
- return LocalConfigResponse(message="保存成功")
|