fachuan / apps /documents /api /evidence_api.py
jun2024's picture
Upload 2241 files
f8b03c1 verified
Raw History Blame Contribute Delete
1.32 kB
"""
证据清单 API
提供证据清单的排序等 API 端点.
Requirements: 4.2, 4.3, 12.1
"""
from __future__ import annotations
from typing import Any
from django.http import HttpRequest
from ninja import Router, Schema
from apps.core.security.auth import JWTOrSessionAuth
router = Router(tags=["证据清单"], auth=JWTOrSessionAuth())
def _get_evidence_service() -> Any:
"""工厂函数获取证据服务"""
from apps.evidence.services.wiring import get_evidence_service
return get_evidence_service()
class ReorderItemsRequest(Schema):
"""重新排序请求"""
item_ids: list[int]
class ReorderItemsResponse(Schema):
"""重新排序响应"""
success: bool
message: str = ""
@router.post(
"/evidence-lists/{list_id}/reorder",
response=ReorderItemsResponse,
summary="重新排序证据明细",
)
def reorder_evidence_items(request: HttpRequest, list_id: int, data: ReorderItemsRequest) -> Any:
"""
重新排序证据明细
Args:
list_id: 证据清单 ID
data: 包含新顺序的明细 ID 列表
Returns:
操作结果
Requirements: 4.2, 4.3
"""
service = _get_evidence_service()
service.reorder_items(list_id, data.item_ids)
return ReorderItemsResponse(success=True, message="排序成功")