131 lines
4.2 KiB
Go
131 lines
4.2 KiB
Go
package api
|
|
|
|
import (
|
|
"easyvqd/internal/conf"
|
|
"easyvqd/internal/core/host"
|
|
"easyvqd/internal/core/media"
|
|
"easyvqd/internal/core/vqd"
|
|
"easyvqd/internal/core/vqdsdk"
|
|
"fmt"
|
|
"git.lnton.com/lnton/pkg/reason"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/ixugo/goddd/pkg/web"
|
|
"strconv"
|
|
)
|
|
|
|
type VqdTaskAPI struct {
|
|
core *vqd.Core
|
|
meidaCore *media.Core
|
|
vqdSdkCore *vqdsdk.Core
|
|
cfg *conf.Bootstrap
|
|
HostCore *host.Core
|
|
}
|
|
|
|
func NewVqdTaskAPI(core *vqd.Core, meidaCore *media.Core, vqdSdkCore *vqdsdk.Core, HostCore *host.Core, cfg *conf.Bootstrap) VqdTaskAPI {
|
|
return VqdTaskAPI{core: core, meidaCore: meidaCore, vqdSdkCore: vqdSdkCore, HostCore: HostCore, cfg: cfg}
|
|
}
|
|
|
|
func RegisterVqdTask(g gin.IRouter, api VqdTaskAPI, handler ...gin.HandlerFunc) {
|
|
{
|
|
|
|
groupTask := g.Group("/api/task", handler...)
|
|
groupTask.GET("", web.WarpH(api.findVqdTask))
|
|
groupTask.GET("/:id", web.WarpH(api.getVqdTask))
|
|
groupTask.PUT("/:id", web.WarpH(api.editVqdTask))
|
|
groupTask.POST("", web.WarpH(api.addVqdTask))
|
|
groupTask.DELETE("/:id", web.WarpH(api.delVqdTask))
|
|
|
|
groupTemplate := g.Group("/api/template", handler...)
|
|
groupTemplate.GET("", web.WarpH(api.findVqdTaskTemplate))
|
|
groupTemplate.GET("/:id", web.WarpH(api.getVqdTaskTemplate))
|
|
groupTemplate.PUT("/:id", web.WarpH(api.editVqdTaskTemplate))
|
|
groupTemplate.POST("", web.WarpH(api.addVqdTaskTemplate))
|
|
groupTemplate.DELETE("/:id", web.WarpH(api.delVqdTaskTemplate))
|
|
|
|
groupAlarm := g.Group("/api/alarm", handler...)
|
|
groupAlarm.GET("", web.WarpH(api.findVqdAlarm))
|
|
groupAlarm.GET("/:id", web.WarpH(api.getVqdAlarm))
|
|
groupAlarm.DELETE("/:id", web.WarpH(api.delVqdAlarm))
|
|
groupAlarm.DELETE("", web.WarpH(api.delVqdAlarmAll))
|
|
|
|
}
|
|
}
|
|
|
|
func (a VqdTaskAPI) findVqdTask(c *gin.Context, in *vqd.FindVqdTaskInput) (any, error) {
|
|
items, total, err := a.core.FindVqdTask(c.Request.Context(), in)
|
|
rows := make([]map[string]interface{}, 0)
|
|
|
|
for _, item := range items {
|
|
//row := structs.Map(item)
|
|
row := make(map[string]interface{})
|
|
row["name"] = item.Name
|
|
row["id"] = item.ID
|
|
row["channel_id"] = item.ChannelID
|
|
row["channel_name"] = item.ChannelName
|
|
row["task_template_id"] = item.TaskTemplateID
|
|
row["task_template_name"] = item.TaskTemplateName
|
|
template, errs := a.core.GetIDVqdTaskTemplate(c.Request.Context(), item.TaskTemplateID)
|
|
if errs == nil && template != nil {
|
|
row["task_template_name"] = template.Name
|
|
}
|
|
row["created_at"] = item.CreatedAt
|
|
row["updated_at"] = item.UpdatedAt
|
|
|
|
rows = append(rows, row)
|
|
}
|
|
|
|
return gin.H{"items": rows, "total": total}, err
|
|
}
|
|
func (a VqdTaskAPI) getVqdTask(c *gin.Context, _ *struct{}) (any, error) {
|
|
ID, _ := strconv.Atoi(c.Param("id"))
|
|
item, err := a.core.GetVqdTask(c.Request.Context(), ID)
|
|
if err != nil {
|
|
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`find vqd [%d] err [%s]`, ID, err.Error()))
|
|
}
|
|
row := make(map[string]interface{})
|
|
|
|
row["name"] = item.Name
|
|
row["id"] = item.ID
|
|
row["channel_id"] = item.ChannelID
|
|
row["channel_name"] = item.ChannelName
|
|
row["task_template_id"] = item.TaskTemplateID
|
|
row["task_template_name"] = item.TaskTemplateName
|
|
row["created_at"] = item.CreatedAt
|
|
row["updated_at"] = item.UpdatedAt
|
|
|
|
row["des"] = item.Des
|
|
return gin.H{"data": row}, err
|
|
}
|
|
func (a VqdTaskAPI) addVqdTask(c *gin.Context, in *vqd.AddVqdTaskInput) (any, error) {
|
|
_, err := a.core.AddVqdTask(c.Request.Context(), in)
|
|
if err != nil {
|
|
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`add vqd err [%s]`, err.Error()))
|
|
}
|
|
|
|
return gin.H{"data": "OK!"}, err
|
|
}
|
|
|
|
func (a VqdTaskAPI) editVqdTask(c *gin.Context, in *vqd.EditVqdTaskInput) (any, error) {
|
|
ID, _ := strconv.Atoi(c.Param("id"))
|
|
_, err := a.core.GetVqdTask(c.Request.Context(), ID)
|
|
if err != nil {
|
|
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`find vqd [%d] err [%s]`, ID, err.Error()))
|
|
}
|
|
|
|
_, err = a.core.EditVqdTask(c.Request.Context(), in, ID)
|
|
if err != nil {
|
|
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`edit vqd err [%s]`, err.Error()))
|
|
}
|
|
return gin.H{"data": "OK!"}, err
|
|
}
|
|
|
|
func (a VqdTaskAPI) delVqdTask(c *gin.Context, _ *struct{}) (any, error) {
|
|
ID, _ := strconv.Atoi(c.Param("id"))
|
|
_, err := a.core.DelVqdTask(c.Request.Context(), ID)
|
|
if err != nil {
|
|
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`del vqd [%d] err [%s]`, ID, err.Error()))
|
|
}
|
|
|
|
return gin.H{"data": "OK!"}, err
|
|
}
|