增加删除配置接口

This commit is contained in:
白茶清欢 2021-12-01 14:15:05 +08:00
parent 9eb2fccd67
commit bf6d8adc4c
4 changed files with 87 additions and 0 deletions

View File

@ -143,6 +143,19 @@ func initRouter(router *gin.Engine) {
} }
response.ManagerAPISuccess(ctx, map[string]interface{}{}) response.ManagerAPISuccess(ctx, map[string]interface{}{})
}) })
// 删除配置
router.POST("/config/delete", func(ctx *gin.Context) {
deleteForm, err := manager.Config.ValidateDeleteConfigForm(ctx)
if nil != err {
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
return
}
if err := manager.Config.Delete(deleteForm); nil != err {
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
return
}
response.ManagerAPISuccess(ctx, map[string]interface{}{})
})
// 读取配置(从内存读取) // 读取配置(从内存读取)
router.GET("/config/read", func(ctx *gin.Context) { router.GET("/config/read", func(ctx *gin.Context) {

View File

@ -97,6 +97,15 @@ func (b *base) Detail(dbInstance *gorm.DB, condition interface{}, result interfa
return dbInstance.First(result, condition).Error return dbInstance.First(result, condition).Error
} }
// Delete 删除数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:24 下午 2021/12/1
func (b *base) Delete(dbInstance *gorm.DB, table string, primaryID int64, model interface{}) error {
return dbInstance.Table(table).Where("id = ?", primaryID).Delete(model).Error
}
// Count 查询数量 // Count 查询数量
// //
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>

View File

@ -20,3 +20,16 @@ type CreateOrUpdateConfig struct {
OperateUserID string `json:"operate_user_id"` // 操作人ID OperateUserID string `json:"operate_user_id"` // 操作人ID
Description string `json:"description"` // 配置描述 Description string `json:"description"` // 配置描述
} }
// DeleteConfig 删除配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:13 下午 2021/12/1
type DeleteConfig struct {
NamespaceID int64 `json:"namespace_id"` // 命名空间ID
Namespace string `json:"namespace"` // 命名空间
Key string `json:"key"` // key
OperateUserID string `json:"operate_user_id"` // 操作人ID
Description string `json:"description"` // 操作描述
}

View File

@ -6,6 +6,7 @@
package manager package manager
import ( import (
"encoding/json"
"errors" "errors"
"fmt" "fmt"
"time" "time"
@ -143,6 +144,30 @@ func (c *config) Update(dataForm *form.CreateOrUpdateConfig, namespaceInfo *mode
return nil return nil
} }
// Delete 删除配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:16 下午 2021/12/1
func (c *config) Delete(dataForm *form.DeleteConfig) error {
var (
cfgInfo *model.Config
err error
)
// 读取key的配置
if cfgInfo, err = c.GetConfigInfo(dataForm.NamespaceID, dataForm.Key); nil != err {
return errors.New("要删除的key查询失败 : " + err.Error())
}
if err = dao.Config.Delete(dao.DBInstance, "config", cfgInfo.ID, model.Config{}); nil != err {
return err
}
byteData, _ := json.Marshal(cfgInfo)
logData := c.GetLogData(cfgInfo.NamespaceID, cfgInfo.ID, dataForm.OperateUserID, model.LogTypeDeleteConfig, "删除配置-"+dataForm.Description)
logData.BeforeValue = string(byteData)
_ = dao.Log.CreateNewData(dao.DBInstance, logData, &dao.Option{DBTable: "log"})
return nil
}
// ValidateCreateOrUpdateConfigForm ... // ValidateCreateOrUpdateConfigForm ...
// //
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
@ -173,6 +198,33 @@ func (c *config) ValidateCreateOrUpdateConfigForm(ctx *gin.Context) (*form.Creat
return &dataForm, nil return &dataForm, nil
} }
// ValidateDeleteConfigForm 删除配置表单
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2:12 下午 2021/12/1
func (c *config) ValidateDeleteConfigForm(ctx *gin.Context) (*form.DeleteConfig, error) {
var (
dataForm form.DeleteConfig
err error
)
if err = c.ParsePostForm(ctx, &dataForm); nil != err {
return nil, err
}
if dataForm.NamespaceID == 0 {
dataForm.NamespaceID = Namespace.GetNamespaceIDByNamespace(dataForm.Namespace)
}
if dataForm.NamespaceID == 0 {
return nil, errors.New("namespace or namespace_id must exist")
}
if len(dataForm.Key) == 0 {
return nil, errors.New("delete is not allowed empty")
}
return &dataForm, nil
}
// GetConfigInfo 读取配置 // GetConfigInfo 读取配置
// //
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>