43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from typing import Any, Dict
|
|
|
|
from fastapi import APIRouter, Depends, HTTPException
|
|
from loguru import logger
|
|
|
|
from middleware.auth_middleware import get_current_user
|
|
|
|
from ..cache_manager import cache_manager
|
|
from ..utils.auth import require_authenticated_user
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/cache/stats")
|
|
async def get_cache_stats(
|
|
current_user: Dict[str, Any] = Depends(get_current_user),
|
|
) -> Dict[str, Any]:
|
|
"""Get cache statistics."""
|
|
try:
|
|
require_authenticated_user(current_user)
|
|
stats = cache_manager.get_cache_stats()
|
|
return {"success": True, "stats": stats}
|
|
except Exception as exc:
|
|
logger.error(f"[StoryWriter] Failed to get cache stats: {exc}")
|
|
raise HTTPException(status_code=500, detail=str(exc))
|
|
|
|
|
|
@router.post("/cache/clear")
|
|
async def clear_cache(
|
|
current_user: Dict[str, Any] = Depends(get_current_user),
|
|
) -> Dict[str, Any]:
|
|
"""Clear the story generation cache."""
|
|
try:
|
|
require_authenticated_user(current_user)
|
|
result = cache_manager.clear_cache()
|
|
return {"success": True, **result}
|
|
except Exception as exc:
|
|
logger.error(f"[StoryWriter] Failed to clear cache: {exc}")
|
|
raise HTTPException(status_code=500, detail=str(exc))
|
|
|
|
|