47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
"""心情叶路由"""
|
|
|
|
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.schemas.leaf import LeafUpdate
|
|
from app.services.leaf_service import LeafService
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/today")
|
|
async def get_today_leaf(
|
|
user: User = Depends(get_current_user),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
"""获取或创建今日心情叶"""
|
|
service = LeafService(db)
|
|
return await service.get_or_create_today(user.id)
|
|
|
|
|
|
@router.put("/{leaf_id}")
|
|
async def update_leaf(
|
|
leaf_id: str,
|
|
req: LeafUpdate,
|
|
user: User = Depends(get_current_user),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
"""更新今日叶子的心情和备注"""
|
|
service = LeafService(db)
|
|
try:
|
|
return await service.update_leaf(user.id, leaf_id, req.mood, req.note)
|
|
except ValueError as e:
|
|
raise HTTPException(status_code=400, detail=str(e))
|
|
|
|
|
|
@router.get("/collection")
|
|
async def get_collection(
|
|
user: User = Depends(get_current_user),
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
"""获取叶子收藏"""
|
|
service = LeafService(db)
|
|
return await service.get_collection(user.id)
|