mp4 / app /api /stories.py
gitdeem's picture
Upload 34 files
a9837a2 verified
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"}