47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package http
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gitlink.org.cn/cloudream/jcs-pub/client/internal/http/types"
|
|
cliapi "gitlink.org.cn/cloudream/jcs-pub/client/sdk/api/v1"
|
|
"gitlink.org.cn/cloudream/jcs-pub/common/ecode"
|
|
)
|
|
|
|
type TickTockService struct {
|
|
*Server
|
|
}
|
|
|
|
func (s *Server) TickTock() *TickTockService {
|
|
return &TickTockService{s}
|
|
}
|
|
|
|
func (s *TickTockService) ListJobs(ctx *gin.Context) {
|
|
var req cliapi.TickTockListJobs
|
|
if err := ctx.ShouldBindQuery(&req); err != nil {
|
|
ctx.JSON(http.StatusBadRequest, types.Failed(ecode.BadArgument, "%v", err))
|
|
return
|
|
}
|
|
|
|
names := s.svc.TickTock.GetJobNames()
|
|
ctx.JSON(http.StatusOK, types.OK(cliapi.TickTockListJobsResp{
|
|
Jobs: names,
|
|
}))
|
|
}
|
|
|
|
func (s *TickTockService) RunJob(ctx *gin.Context) {
|
|
var req cliapi.TickTockRunJob
|
|
if err := ctx.ShouldBindJSON(&req); err != nil {
|
|
ctx.JSON(http.StatusBadRequest, types.Failed(ecode.BadArgument, "%v", err))
|
|
return
|
|
}
|
|
|
|
if !s.svc.TickTock.RunNow(req.Name) {
|
|
ctx.JSON(http.StatusOK, types.Failed(ecode.DataNotFound, "job %s not found", req.Name))
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, types.OK(cliapi.TickTockRunJobResp{}))
|
|
}
|