"""好友之树路由""" from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from app.dependencies import get_db, get_current_user from app.models.user import User from app.services.tree_service import TreeService router = APIRouter() @router.get("/") async def list_trees( user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取所有好友的树""" service = TreeService(db) return await service.get_all_trees(user.id) @router.get("/{friend_id}") async def get_tree( friend_id: str, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """获取与某好友的树""" service = TreeService(db) return await service.get_tree(user.id, friend_id) @router.post("/{friend_id}/water") async def water_tree( friend_id: str, user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): """浇水""" service = TreeService(db) try: return await service.water(user.id, friend_id) except ValueError as e: raise HTTPException(status_code=400, detail=str(e))