微信小程序页面迁移校验之前 P5任务处理之前
This commit is contained in:
67
apps/backend/app/routers/xcx_notes.py
Normal file
67
apps/backend/app/routers/xcx_notes.py
Normal file
@@ -0,0 +1,67 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
小程序备注路由 —— 备注 CRUD(含星星评分)。
|
||||
|
||||
端点清单:
|
||||
- POST /api/xcx/notes — 创建备注
|
||||
- GET /api/xcx/notes — 查询备注列表(query: target_type, target_id)
|
||||
- DELETE /api/xcx/notes/{id} — 删除备注
|
||||
|
||||
所有端点均需 JWT(approved 状态)。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
|
||||
from app.auth.dependencies import CurrentUser
|
||||
from app.middleware.permission import require_approved
|
||||
from app.schemas.xcx_notes import NoteCreateRequest, NoteOut
|
||||
from app.services import note_service
|
||||
|
||||
router = APIRouter(prefix="/api/xcx/notes", tags=["小程序备注"])
|
||||
|
||||
|
||||
@router.post("", response_model=NoteOut)
|
||||
async def create_note(
|
||||
body: NoteCreateRequest,
|
||||
user: CurrentUser = Depends(require_approved()),
|
||||
):
|
||||
"""创建备注(含星星评分,可选关联任务)。"""
|
||||
return await note_service.create_note(
|
||||
site_id=user.site_id,
|
||||
user_id=user.user_id,
|
||||
target_type=body.target_type,
|
||||
target_id=body.target_id,
|
||||
content=body.content,
|
||||
task_id=body.task_id,
|
||||
rating_service_willingness=body.rating_service_willingness,
|
||||
rating_revisit_likelihood=body.rating_revisit_likelihood,
|
||||
)
|
||||
|
||||
|
||||
@router.get("")
|
||||
async def get_notes(
|
||||
target_type: str = Query("member", description="目标类型"),
|
||||
target_id: int = Query(..., description="目标 ID"),
|
||||
user: CurrentUser = Depends(require_approved()),
|
||||
):
|
||||
"""查询某目标的备注列表(按创建时间倒序)。"""
|
||||
return await note_service.get_notes(
|
||||
site_id=user.site_id,
|
||||
target_type=target_type,
|
||||
target_id=target_id,
|
||||
)
|
||||
|
||||
|
||||
@router.delete("/{note_id}")
|
||||
async def delete_note(
|
||||
note_id: int,
|
||||
user: CurrentUser = Depends(require_approved()),
|
||||
):
|
||||
"""删除备注(验证归属后硬删除)。"""
|
||||
return await note_service.delete_note(
|
||||
note_id=note_id,
|
||||
user_id=user.user_id,
|
||||
site_id=user.site_id,
|
||||
)
|
||||
Reference in New Issue
Block a user