Files
Neo-ZQYY/apps/backend/app/routers/xcx_notes.py

68 lines
2.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""
小程序备注路由 —— 备注 CRUD含星星评分
端点清单:
- POST /api/xcx/notes — 创建备注
- GET /api/xcx/notes — 查询备注列表query: target_type, target_id
- DELETE /api/xcx/notes/{id} — 删除备注
所有端点均需 JWTapproved 状态)。
"""
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,
)