mirror of
https://github.com/DrizzleTime/Foxel.git
synced 2026-05-11 18:10:10 +08:00
- Updated import statements across multiple modules to use relative imports for better encapsulation. - Consolidated and organized the `__init__.py` files in various domain packages to expose necessary classes and functions. - Improved code readability and maintainability by grouping related imports and removing unused ones. - Ensured consistent import patterns across the domain, enhancing the overall structure of the codebase.
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from typing import Annotated
|
|
|
|
from fastapi import APIRouter, Depends, Request
|
|
|
|
from api.response import success
|
|
from domain.audit import AuditAction, audit
|
|
from domain.auth import User, get_current_active_user
|
|
from .service import OfflineDownloadService
|
|
from .types import OfflineDownloadCreate
|
|
|
|
CurrentUser = Annotated[User, Depends(get_current_active_user)]
|
|
|
|
router = APIRouter(
|
|
prefix="/api/offline-downloads",
|
|
tags=["OfflineDownloads"],
|
|
)
|
|
|
|
|
|
@router.post("/")
|
|
@audit(
|
|
action=AuditAction.CREATE,
|
|
description="创建离线下载任务",
|
|
body_fields=["url", "dest_dir", "filename"],
|
|
)
|
|
async def create_offline_download(request: Request, payload: OfflineDownloadCreate, current_user: CurrentUser):
|
|
data = await OfflineDownloadService.create_download(payload, current_user)
|
|
return success(data)
|
|
|
|
|
|
@router.get("/")
|
|
@audit(action=AuditAction.READ, description="获取离线下载列表")
|
|
async def list_offline_downloads(request: Request, current_user: CurrentUser):
|
|
data = OfflineDownloadService.list_downloads()
|
|
return success(data)
|
|
|
|
|
|
@router.get("/{task_id}")
|
|
@audit(action=AuditAction.READ, description="获取离线下载详情")
|
|
async def get_offline_download(task_id: str, request: Request, current_user: CurrentUser):
|
|
data = OfflineDownloadService.get_download(task_id)
|
|
return success(data)
|