25 lines
734 B
Python
25 lines
734 B
Python
"""Copy/export tracking API."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends, Request
|
|
|
|
from app.api.deps import require_permission
|
|
from app.model.schemas import AuthContext, CopyTrackRequest
|
|
from app.service.copy_track_service import CopyTrackService
|
|
from app.utils.response import success_response
|
|
|
|
router = APIRouter()
|
|
COPY_TRACK_DEP = Depends(require_permission("copy:track"))
|
|
copy_track_service = CopyTrackService()
|
|
|
|
|
|
@router.post("/track")
|
|
def track_copy(
|
|
request: Request,
|
|
payload: CopyTrackRequest,
|
|
auth: AuthContext = COPY_TRACK_DEP,
|
|
):
|
|
result = copy_track_service.track(payload, auth, request.state.trace_id)
|
|
return success_response(request, result.model_dump(mode="json"))
|