刘涛 8c0a5f489d Initial commit: hulai admin API backend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 22:01:23 +08:00

39 行
1.1 KiB
Python

from __future__ import annotations
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.database import get_db
from app.auth import get_current_user
from app.models.selector import SelectorConfig
from app.schemas.selector import SelectorConfigSchema, SelectorConfigResponse
router = APIRouter(
prefix="/api/selector",
tags=["选版工具"],
dependencies=[Depends(get_current_user)],
)
def _get_or_create(db: Session) -> SelectorConfig:
config = db.query(SelectorConfig).first()
if not config:
config = SelectorConfig(questions=[], rules=[])
db.add(config)
db.commit()
return config
@router.get("/", response_model=SelectorConfigResponse)
def get_config(db: Session = Depends(get_db)):
return SelectorConfigResponse.model_validate(_get_or_create(db))
@router.put("/", response_model=SelectorConfigResponse)
def update_config(req: SelectorConfigSchema, db: Session = Depends(get_db)):
config = _get_or_create(db)
config.questions = req.questions
config.rules = req.rules
db.commit()
db.refresh(config)
return SelectorConfigResponse.model_validate(config)