39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""投顾待办路由(业务在 service/advisor/todos.py,路由只做编排)。"""
|
||
from fastapi import APIRouter, Depends, Query
|
||
from sqlalchemy.ext.asyncio import AsyncSession
|
||
|
||
from api.deps import require_advisor
|
||
from config.deps import get_db
|
||
from model.sys_user import SysUser
|
||
from schemas.advisor import TodoHandleReq
|
||
from service.advisor import todos as todos_service
|
||
from utils.response import success
|
||
|
||
router = APIRouter()
|
||
|
||
|
||
@router.get("/todos", summary="本人待办列表")
|
||
async def list_todos(
|
||
status: str | None = Query(None, max_length=16),
|
||
todo_type: str | None = Query(None, max_length=32),
|
||
page: int = Query(1, ge=1),
|
||
page_size: int = Query(10, ge=1, le=100),
|
||
user: SysUser = Depends(require_advisor),
|
||
db: AsyncSession = Depends(get_db),
|
||
):
|
||
return success(
|
||
await todos_service.list_todos(
|
||
db, user, status=status, todo_type=todo_type, page=page, page_size=page_size
|
||
)
|
||
)
|
||
|
||
|
||
@router.post("/todos/{todo_id}/handle", summary="处理待办(process/done)")
|
||
async def handle_todo(
|
||
todo_id: int,
|
||
req: TodoHandleReq,
|
||
user: SysUser = Depends(require_advisor),
|
||
db: AsyncSession = Depends(get_db),
|
||
):
|
||
return success(await todos_service.handle_todo(db, user, todo_id, req))
|