Files
TaskPool/internal/controllers/executor_controller.go
T
2025-12-20 09:30:16 +08:00

56 lines
1.2 KiB
Go

package controllers
import (
"strconv"
"baihu/internal/services"
"baihu/internal/utils"
"github.com/gin-gonic/gin"
)
type ExecutorController struct {
executorService *services.ExecutorService
}
func NewExecutorController(executorService *services.ExecutorService) *ExecutorController {
return &ExecutorController{executorService: executorService}
}
func (ec *ExecutorController) ExecuteTask(c *gin.Context) {
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
utils.BadRequest(c, "无效的任务ID")
return
}
result := ec.executorService.ExecuteTask(id)
utils.Success(c, result)
}
func (ec *ExecutorController) ExecuteCommand(c *gin.Context) {
var req struct {
Command string `json:"command" binding:"required"`
}
if err := c.ShouldBindJSON(&req); err != nil {
utils.BadRequest(c, err.Error())
return
}
result := ec.executorService.ExecuteCommand(req.Command)
utils.Success(c, result)
}
func (ec *ExecutorController) GetLastResults(c *gin.Context) {
count := 10
if c.Query("count") != "" {
if parsedCount, err := strconv.Atoi(c.Query("count")); err == nil && parsedCount > 0 {
count = parsedCount
}
}
results := ec.executorService.GetLastResults(count)
utils.Success(c, results)
}