Files
mayfly-go/server/internal/machine/api/machine_cmd_conf.go

64 lines
1.9 KiB
Go

package api
import (
"mayfly-go/internal/machine/api/form"
"mayfly-go/internal/machine/api/vo"
"mayfly-go/internal/machine/application"
"mayfly-go/internal/machine/application/dto"
"mayfly-go/internal/machine/domain/entity"
"mayfly-go/internal/machine/imsg"
tagapp "mayfly-go/internal/tag/application"
tagentity "mayfly-go/internal/tag/domain/entity"
"mayfly-go/pkg/biz"
"mayfly-go/pkg/req"
"mayfly-go/pkg/utils/collx"
)
type MachineCmdConf struct {
machineCmdConfApp application.MachineCmdConf `inject:"T"`
tagTreeRelateApp tagapp.TagTreeRelate `inject:"T"`
}
func (mcc *MachineCmdConf) ReqConfs() *req.Confs {
reqs := [...]*req.Conf{
req.NewGet("", mcc.MachineCmdConfs),
req.NewPost("", mcc.Save).Log(req.NewLogSaveI(imsg.LogMachineSecurityCmdSave)).RequiredPermissionCode("cmdconf:save"),
req.NewDelete(":id", mcc.Delete).Log(req.NewLogSaveI(imsg.LogMachineSecurityCmdDelete)).RequiredPermissionCode("cmdconf:del"),
}
return req.NewConfs("machine/security/cmd-confs", reqs[:]...)
}
func (m *MachineCmdConf) MachineCmdConfs(rc *req.Ctx) {
cond := req.BindQuery(rc, new(entity.MachineCmdConf))
var vos []*vo.MachineCmdConfVO
err := m.machineCmdConfApp.ListByCondToAny(cond, &vos)
biz.ErrIsNil(err)
m.tagTreeRelateApp.FillTagInfo(tagentity.TagRelateTypeMachineCmd, collx.ArrayMap(vos, func(mvo *vo.MachineCmdConfVO) tagentity.IRelateTag {
return mvo
})...)
rc.ResData = vos
}
func (m *MachineCmdConf) Save(rc *req.Ctx) {
cmdForm := new(form.MachineCmdConfForm)
mcj := req.BindJsonAndCopyTo[*entity.MachineCmdConf](rc, cmdForm, new(entity.MachineCmdConf))
rc.ReqParam = cmdForm
err := m.machineCmdConfApp.SaveCmdConf(rc.MetaCtx, &dto.SaveMachineCmdConf{
CmdConf: mcj,
CodePaths: cmdForm.CodePaths,
})
biz.ErrIsNil(err)
}
func (m *MachineCmdConf) Delete(rc *req.Ctx) {
m.machineCmdConfApp.DeleteCmdConf(rc.MetaCtx, uint64(rc.PathParamInt("id")))
}