Files
MMGame/backend/app/routers/scripts.py
T

46 lines
1.1 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from pydantic import BaseModel
from app.database import get_db
from app.models.script import Script
from app.scripts.sample import SCRIPTS
router = APIRouter(prefix="/api/scripts", tags=["scripts"])
class ScriptListItem(BaseModel):
id: str
title: str
type: str
difficulty: int
min_players: int
max_players: int
duration: str
background: str
@router.get("")
async def list_scripts():
items = []
for s in SCRIPTS:
items.append(ScriptListItem(
id=s["id"],
title=s["title"],
type=s["type"],
difficulty=s["difficulty"],
min_players=s["playerCount"]["min"],
max_players=s["playerCount"]["max"],
duration=s["duration"],
background=s["background"],
))
return items
@router.get("/{script_id}")
async def get_script(script_id: str):
for s in SCRIPTS:
if s["id"] == script_id:
return s
raise HTTPException(404, "剧本不存在")