feat: add MMGame backend and frontend source code
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
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, "剧本不存在")
|
||||
Reference in New Issue
Block a user