2020-10-04 20:38:27 +08:00
|
|
|
package cache
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/json"
|
2022-03-04 17:00:01 +08:00
|
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/utils"
|
2020-10-04 20:38:27 +08:00
|
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
|
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
2022-09-03 18:14:34 +08:00
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
2020-10-04 20:38:27 +08:00
|
|
|
"github.com/iwind/TeaGo/actions"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type CreatePopupAction struct {
|
|
|
|
|
actionutils.ParentAction
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *CreatePopupAction) Init() {
|
|
|
|
|
this.Nav("", "", "")
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-08 22:46:08 +08:00
|
|
|
func (this *CreatePopupAction) RunGet(params struct {
|
|
|
|
|
IsReverse bool
|
|
|
|
|
}) {
|
|
|
|
|
this.Data["isReverse"] = params.IsReverse
|
|
|
|
|
|
2020-10-04 20:38:27 +08:00
|
|
|
this.Show()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *CreatePopupAction) RunPost(params struct {
|
2020-12-17 15:50:44 +08:00
|
|
|
CacheRefJSON []byte
|
2020-10-04 20:38:27 +08:00
|
|
|
|
2022-09-03 19:15:30 +08:00
|
|
|
CondType string
|
|
|
|
|
CondJSON []byte
|
|
|
|
|
CondIsCaseInsensitive bool
|
2022-09-03 18:14:34 +08:00
|
|
|
|
2020-10-04 20:38:27 +08:00
|
|
|
Must *actions.Must
|
|
|
|
|
}) {
|
2022-03-04 17:00:01 +08:00
|
|
|
var cacheRef = &serverconfigs.HTTPCacheRef{}
|
2020-12-17 15:50:44 +08:00
|
|
|
err := json.Unmarshal(params.CacheRefJSON, cacheRef)
|
2020-10-04 20:38:27 +08:00
|
|
|
if err != nil {
|
2022-09-03 18:14:34 +08:00
|
|
|
this.Fail("解析条件出错:" + err.Error() + ", JSON: " + string(params.CacheRefJSON))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(params.CondJSON) > 0 {
|
|
|
|
|
var cond = &shared.HTTPRequestCond{}
|
|
|
|
|
err = json.Unmarshal(params.CondJSON, cond)
|
|
|
|
|
if err != nil {
|
|
|
|
|
this.Fail("解析条件出错:" + err.Error() + ", JSON: " + string(params.CondJSON))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
cond.Type = params.CondType
|
2022-09-03 19:15:30 +08:00
|
|
|
cond.IsCaseInsensitive = params.CondIsCaseInsensitive
|
2022-09-03 18:14:34 +08:00
|
|
|
cacheRef.SimpleCond = cond
|
|
|
|
|
|
|
|
|
|
// 将组合条件置为空
|
|
|
|
|
cacheRef.Conds = &shared.HTTPRequestCondsConfig{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = cacheRef.Init()
|
|
|
|
|
if err != nil {
|
|
|
|
|
this.Fail("解析条件出错:" + err.Error())
|
2020-10-04 20:38:27 +08:00
|
|
|
return
|
|
|
|
|
}
|
2022-09-03 18:14:34 +08:00
|
|
|
|
2020-10-04 20:38:27 +08:00
|
|
|
if len(cacheRef.Key) == 0 {
|
|
|
|
|
this.Fail("请输入缓存Key")
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-03 18:14:34 +08:00
|
|
|
if (cacheRef.Conds == nil || len(cacheRef.Conds.Groups) == 0) && cacheRef.SimpleCond == nil {
|
2021-08-29 09:22:02 +08:00
|
|
|
this.Fail("请填写匹配条件分组")
|
|
|
|
|
}
|
|
|
|
|
|
2022-03-04 17:00:01 +08:00
|
|
|
this.Data["cacheRef"] = cacheRef
|
|
|
|
|
|
|
|
|
|
cacheRefClone, err := utils.JSONClone(cacheRef)
|
|
|
|
|
if err != nil {
|
|
|
|
|
this.Fail(err.Error())
|
|
|
|
|
}
|
|
|
|
|
err = cacheRefClone.(*serverconfigs.HTTPCacheRef).Init()
|
2020-10-04 20:38:27 +08:00
|
|
|
if err != nil {
|
|
|
|
|
this.ErrorPage(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.Data["cacheRef"] = cacheRef
|
|
|
|
|
|
|
|
|
|
this.Success()
|
|
|
|
|
}
|