mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2026-10-28 08:00:19 +00:00
* feat(mcp): add Panel MCP task configuration and website binding structures * fix(mcp): correct variable assignment in mcpWebsiteDomain function
83 lines
2.2 KiB
Go
83 lines
2.2 KiB
Go
package v2
|
|
|
|
import (
|
|
"github.com/1Panel-dev/1Panel/agent/app/api/v2/helper"
|
|
"github.com/1Panel-dev/1Panel/agent/app/dto"
|
|
"github.com/1Panel-dev/1Panel/agent/app/dto/request"
|
|
"github.com/1Panel-dev/1Panel/agent/app/dto/response"
|
|
"github.com/1Panel-dev/1Panel/agent/app/service"
|
|
"github.com/1Panel-dev/1Panel/agent/utils/taskscope"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// @Tags TaskLog
|
|
// @Summary Page task logs
|
|
// @Accept json
|
|
// @Param request body dto.SearchTaskLogReq true "request"
|
|
// @Success 200 {object} dto.PageResult
|
|
// @Security ApiKeyAuth
|
|
// @Security Timestamp
|
|
// @Router /logs/tasks/search [post]
|
|
func (b *BaseApi) PageTasks(c *gin.Context) {
|
|
var req dto.SearchTaskLogReq
|
|
if err := helper.CheckBindAndValidate(&req, c); err != nil {
|
|
return
|
|
}
|
|
total, list, err := taskServiceForRequest(c).Page(req)
|
|
if err != nil {
|
|
helper.InternalServer(c, err)
|
|
return
|
|
}
|
|
helper.SuccessWithData(c, dto.PageResult{
|
|
Items: list,
|
|
Total: total,
|
|
})
|
|
}
|
|
|
|
// @Tags TaskLog
|
|
// @Summary Read task log by Line
|
|
// @Param request body request.TaskLogReadReq true "request"
|
|
// @Success 200 {object} response.FileLineContent
|
|
// @Security ApiKeyAuth
|
|
// @Security Timestamp
|
|
// @Router /logs/tasks/read [post]
|
|
func (b *BaseApi) ReadTaskLogByLine(c *gin.Context) {
|
|
var req request.TaskLogReadReq
|
|
if err := helper.CheckBindAndValidate(&req, c); err != nil {
|
|
return
|
|
}
|
|
var res *response.FileLineContent
|
|
res, err := taskServiceForRequest(c).ReadByLine(req)
|
|
if err != nil {
|
|
helper.InternalServer(c, err)
|
|
return
|
|
}
|
|
if res.TotalLines > 100 {
|
|
helper.SuccessWithDataGzipped(c, res)
|
|
} else {
|
|
helper.SuccessWithData(c, res)
|
|
}
|
|
}
|
|
|
|
// @Tags TaskLog
|
|
// @Summary Get the number of executing tasks
|
|
// @Success 200 {integer} int64
|
|
// @Security ApiKeyAuth
|
|
// @Security Timestamp
|
|
// @Router /logs/tasks/executing/count [get]
|
|
func (b *BaseApi) CountExecutingTasks(c *gin.Context) {
|
|
count, err := taskServiceForRequest(c).CountExecutingTask()
|
|
if err != nil {
|
|
helper.InternalServer(c, err)
|
|
return
|
|
}
|
|
helper.SuccessWithData(c, count)
|
|
}
|
|
|
|
func taskServiceForRequest(c *gin.Context) service.ITaskLogService {
|
|
if granted := taskscope.Grants(c.Request.Context()); len(granted) != 0 {
|
|
return service.NewITaskService(granted...)
|
|
}
|
|
return taskService
|
|
}
|