| | from fastapi import APIRouter, HTTPException, Query
|
| | from typing import List
|
| | from ..schemas.story import Story, StoryCreate, StoryUpdate
|
| | from ..services.story import story_service
|
| |
|
| | router = APIRouter()
|
| |
|
| |
|
| | @router.get("/", response_model=List[Story])
|
| | async def list_stories(
|
| | skip: int = Query(0, ge=0),
|
| | limit: int = Query(10, ge=1, le=100)
|
| | ):
|
| | """
|
| | 获取故事列表
|
| | """
|
| | return story_service.get_stories(skip=skip, limit=limit)
|
| |
|
| |
|
| | @router.post("/", response_model=Story)
|
| | async def create_story(story: StoryCreate):
|
| | """
|
| | 创建新故事
|
| | """
|
| | return story_service.create_story(story)
|
| |
|
| |
|
| | @router.get("/{story_id}", response_model=Story)
|
| | async def get_story(story_id: str):
|
| | """
|
| | 获取特定故事的详细信息
|
| | """
|
| | story = story_service.get_story(story_id)
|
| | if story is None:
|
| | raise HTTPException(status_code=404, detail="Story not found")
|
| | return story
|
| |
|
| |
|
| | @router.put("/{story_id}", response_model=Story)
|
| | async def update_story(story_id: str, story: StoryUpdate):
|
| | """
|
| | 更新故事信息
|
| | """
|
| | updated_story = story_service.update_story(story_id, story)
|
| | if updated_story is None:
|
| | raise HTTPException(status_code=404, detail="Story not found")
|
| | return updated_story
|
| |
|
| |
|
| | @router.delete("/{story_id}")
|
| | async def delete_story(story_id: str):
|
| | """
|
| | 删除故事
|
| | """
|
| | if not story_service.delete_story(story_id):
|
| | raise HTTPException(status_code=404, detail="Story not found")
|
| | return {"message": "Story deleted successfully"}
|
| |
|