Files
APIPark/gateway/apinto/plugin.go
T
2024-08-12 21:38:09 +08:00

46 lines
1.2 KiB
Go

package apinto
import (
"context"
"github.com/APIParkLab/APIPark/gateway/apinto/plugin"
"github.com/APIParkLab/APIPark/gateway"
admin_client "github.com/eolinker/eosc/process-admin/client"
)
var _ gateway.IPluginSetting = &PluginSettingClient{}
type PluginSettingClient struct {
client admin_client.Client
}
func (p *PluginSettingClient) Init(ctx context.Context) error {
//data, err := json.Marshal(map[string]interface{}{
// "plugins": plugin.GetGlobalPluginConf(),
//})
//log.Println(string(data), err)
return p.client.SSet(ctx, "plugin", map[string]interface{}{
"plugins": plugin.GetGlobalPluginConf(),
})
}
func (p *PluginSettingClient) Set(ctx context.Context, configs []*gateway.PluginConfig) error {
globalPlugins := make([]*plugin.GlobalPlugin, 0, len(configs))
for _, cfg := range configs {
globalPlugins = append(globalPlugins, &plugin.GlobalPlugin{
Config: cfg.Config,
Id: cfg.Id,
Name: cfg.Name,
Status: cfg.Status,
})
}
return p.client.SSet(ctx, "plugin", map[string]interface{}{
"plugins": globalPlugins,
})
}
func NewPluginSettingClient(client admin_client.Client) *PluginSettingClient {
return &PluginSettingClient{client: client}
}