mirror of
https://github.com/alibaba/higress.git
synced 2026-03-07 10:00:48 +08:00
38 lines
1.0 KiB
Go
38 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/tidwall/gjson"
|
|
|
|
"github.com/alibaba/higress/plugins/wasm-go/extensions/traffic-editor/pkg"
|
|
)
|
|
|
|
type PluginConfig struct {
|
|
DefaultConfig *pkg.CommandSet `json:"defaultConfig,omitempty"`
|
|
ConditionalConfigs []*pkg.ConditionalCommandSet `json:"conditionalConfigs,omitempty"`
|
|
}
|
|
|
|
func (c *PluginConfig) FromJson(json gjson.Result) error {
|
|
c.DefaultConfig = nil
|
|
defaultConfigJson := json.Get("defaultConfig")
|
|
if defaultConfigJson.Exists() && defaultConfigJson.IsObject() {
|
|
c.DefaultConfig = &pkg.CommandSet{}
|
|
if err := c.DefaultConfig.FromJson(defaultConfigJson); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
c.ConditionalConfigs = nil
|
|
conditionalConfigsJson := json.Get("conditionalConfigs")
|
|
if conditionalConfigsJson.Exists() && conditionalConfigsJson.IsArray() {
|
|
for _, item := range conditionalConfigsJson.Array() {
|
|
config := &pkg.ConditionalCommandSet{}
|
|
if err := config.FromJson(item); err != nil {
|
|
return err
|
|
}
|
|
c.ConditionalConfigs = append(c.ConditionalConfigs, config)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|