package admin import ( "datart/data/postgres" "datart/log" "errors" "fmt" "github.com/gin-gonic/gin" ) type command struct { Command string `json:"command"` Timeout int64 `json:"timeout"` Args []any `json:"args"` } func (a *Admin) PostExecuteCommand(ctx *gin.Context) { req, err := a.checkAndGenExecuteCommandRequest(ctx) if err != nil { log.Error(err) ctx.JSON(200, gin.H{ "code": 1, "msg": err.Error(), }) return } err = postgres.GenSSU2ChannelSizes(ctx.Request.Context(), 500) if err != nil { log.Error(err, fmt.Sprintf(" params: %v", req)) ctx.JSON(200, gin.H{ "code": 2, "msg": err.Error(), }) return } ctx.JSON(200, gin.H{ "code": 0, "msg": "success", }) } func (a *Admin) checkAndGenExecuteCommandRequest(ctx *gin.Context) (*command, error) { req := new(command) err := ctx.ShouldBindJSON(req) if err != nil { return req, errors.New("invalid body param") } if req.Command != "GenSSU2ChannelSizes" { return nil, errors.New("invalid function") } return req, nil }