init
This commit is contained in:
57
api/handlers/task.go
Normal file
57
api/handlers/task.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/drama-generator/backend/application/services"
|
||||
"github.com/drama-generator/backend/pkg/logger"
|
||||
"github.com/drama-generator/backend/pkg/response"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type TaskHandler struct {
|
||||
taskService *services.TaskService
|
||||
log *logger.Logger
|
||||
}
|
||||
|
||||
func NewTaskHandler(db *gorm.DB, log *logger.Logger) *TaskHandler {
|
||||
return &TaskHandler{
|
||||
taskService: services.NewTaskService(db, log),
|
||||
log: log,
|
||||
}
|
||||
}
|
||||
|
||||
// GetTaskStatus 获取任务状态
|
||||
func (h *TaskHandler) GetTaskStatus(c *gin.Context) {
|
||||
taskID := c.Param("task_id")
|
||||
|
||||
task, err := h.taskService.GetTask(taskID)
|
||||
if err != nil {
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
response.NotFound(c, "任务不存在")
|
||||
return
|
||||
}
|
||||
h.log.Errorw("Failed to get task", "error", err, "task_id", taskID)
|
||||
response.InternalError(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, task)
|
||||
}
|
||||
|
||||
// GetResourceTasks 获取资源相关的所有任务
|
||||
func (h *TaskHandler) GetResourceTasks(c *gin.Context) {
|
||||
resourceID := c.Query("resource_id")
|
||||
if resourceID == "" {
|
||||
response.BadRequest(c, "缺少resource_id参数")
|
||||
return
|
||||
}
|
||||
|
||||
tasks, err := h.taskService.GetTasksByResource(resourceID)
|
||||
if err != nil {
|
||||
h.log.Errorw("Failed to get resource tasks", "error", err, "resource_id", resourceID)
|
||||
response.InternalError(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, tasks)
|
||||
}
|
||||
Reference in New Issue
Block a user