51 lines
1.9 KiB
Go
51 lines
1.9 KiB
Go
package routes
|
||
|
||
import (
|
||
"github.com/gofiber/fiber/v2"
|
||
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/admin"
|
||
"github.com/break/junhong_cmp_fiber/internal/model/dto"
|
||
"github.com/break/junhong_cmp_fiber/pkg/openapi"
|
||
)
|
||
|
||
func registerExportTaskRoutes(router fiber.Router, handler *admin.ExportTaskHandler, doc *openapi.Generator, basePath string) {
|
||
exportTasks := router.Group("/export-tasks")
|
||
groupPath := basePath + "/export-tasks"
|
||
|
||
Register(exportTasks, doc, groupPath, "POST", "", handler.Create, RouteSpec{
|
||
Summary: "创建导出任务",
|
||
Description: "创建统一导出任务,支持场景 scene=device/iot_card/order 和格式 format=xlsx/csv。",
|
||
Tags: []string{"导出任务"},
|
||
Input: new(dto.CreateExportTaskRequest),
|
||
Output: new(dto.CreateExportTaskResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(exportTasks, doc, groupPath, "GET", "", handler.List, RouteSpec{
|
||
Summary: "导出任务列表",
|
||
Description: "支持按 scene/status/time 过滤,分页默认 20,最大 100。",
|
||
Tags: []string{"导出任务"},
|
||
Input: new(dto.ListExportTaskRequest),
|
||
Output: new(dto.ListExportTaskResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(exportTasks, doc, groupPath, "GET", "/:id", handler.GetByID, RouteSpec{
|
||
Summary: "导出任务详情",
|
||
Description: "已完成任务返回 download_url,链接固定有效期 24 小时。",
|
||
Tags: []string{"导出任务"},
|
||
Input: new(dto.GetExportTaskRequest),
|
||
Output: new(dto.ExportTaskDetailResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(exportTasks, doc, groupPath, "POST", "/:id/cancel", handler.Cancel, RouteSpec{
|
||
Summary: "取消导出任务",
|
||
Description: "支持取消待处理/处理中任务;已完成/已失败/已取消任务不可取消。",
|
||
Tags: []string{"导出任务"},
|
||
Input: new(dto.CancelExportTaskRequest),
|
||
Output: new(dto.CancelExportTaskResponse),
|
||
Auth: true,
|
||
})
|
||
}
|