优化脚本代码配置

This commit is contained in:
GoEdgeLab
2022-01-03 21:51:24 +08:00
parent d9458913c8
commit e9066d8da0
8 changed files with 57 additions and 28 deletions

View File

@@ -3,20 +3,20 @@
package serverconfigs
type HTTPRequestScriptsConfig struct {
OnInitScript *JSScriptConfig `yaml:"onInitScript" json:"onInitScript"` // 接收到请求之后
OnRequestScript *JSScriptConfig `yaml:"onRequestScript" json:"onRequestScript"` // 准备转发请求之前
InitGroup *ScriptGroupConfig `yaml:"initGroup" json:"initGroup"`
RequestGroup *ScriptGroupConfig `yaml:"requestGroup" json:"requestGroup"`
}
func (this *HTTPRequestScriptsConfig) Init() error {
if this.OnInitScript != nil {
err := this.OnInitScript.Init()
if this.InitGroup != nil {
err := this.InitGroup.Init()
if err != nil {
return err
}
}
if this.OnRequestScript != nil {
err := this.OnRequestScript.Init()
if this.RequestGroup != nil {
err := this.RequestGroup.Init()
if err != nil {
return err
}
@@ -26,8 +26,6 @@ func (this *HTTPRequestScriptsConfig) Init() error {
}
func (this *HTTPRequestScriptsConfig) IsEmpty() bool {
if (this.OnInitScript == nil || !this.OnInitScript.IsOn) && (this.OnRequestScript == nil || !this.OnRequestScript.IsOn) {
return true
}
return false
return (this.InitGroup == nil || this.InitGroup.IsEmpty()) &&
(this.RequestGroup == nil || this.RequestGroup.IsEmpty())
}

View File

@@ -1,13 +0,0 @@
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package serverconfigs
type JSScriptConfig struct {
IsPrior bool `yaml:"isPrior" json:"isPrior"`
IsOn bool `yaml:"isOn" json:"isOn"`
Code string `yaml:"code" json:"code"`
}
func (this *JSScriptConfig) Init() error {
return nil
}

View File

@@ -0,0 +1,14 @@
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package serverconfigs
type ScriptConfig struct {
IsPrior bool `yaml:"isPrior" json:"isPrior"`
IsOn bool `yaml:"isOn" json:"isOn"`
Code string `yaml:"code" json:"code"`
}
func (this *ScriptConfig) Init() error {
return nil
}

View File

@@ -0,0 +1,30 @@
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package serverconfigs
type ScriptGroupConfig struct {
IsOn bool `yaml:"isOn" json:"isOn"`
IsPrior bool `yaml:"isPrior" json:"isPrior"`
Scripts []*ScriptConfig `yaml:"scripts" json:"scripts"`
isEmpty bool
}
func (this *ScriptGroupConfig) Init() error {
this.isEmpty = true
for _, script := range this.Scripts {
err := script.Init()
if err != nil {
return err
}
if script.IsOn {
this.isEmpty = false
}
}
return nil
}
func (this *ScriptGroupConfig) IsEmpty() bool {
return this.isEmpty
}