Files
goodBaby/drivers/rainyun/accountConfigChecker.go
T

57 lines
1.4 KiB
Go
Raw Normal View History

2026-08-13 09:13:10 +08:00
package rainyun
import (
"fmt"
"github.com/ssdomei232/goodBaby/internal/meta"
rain "github.com/ssdomei232/rainyun-go-sdk/v2/rainyun/common"
"github.com/ssdomei232/rainyun-go-sdk/v2/rainyun/user"
)
// RainyunAccountConfigValidator Rainyun账号配置验证器
type RainyunAccountConfigValidator struct{}
2026-08-30 16:03:32 +08:00
func (v *RainyunAccountConfigValidator) GetType() string { return AccountType }
2026-08-13 09:13:10 +08:00
func (v *RainyunAccountConfigValidator) Validate(config string) error {
// 解析配置
2026-09-12 15:32:27 +08:00
cfg, err := ParseAccountConfig(config)
2026-08-13 09:13:10 +08:00
if err != nil {
return err
}
if cfg.APIKey == "" {
return fmt.Errorf("雨云账号配置中APIKey不能为空")
}
return nil
}
func (v *RainyunAccountConfigValidator) Test(config string) error {
2026-09-12 15:32:27 +08:00
cfg, err := ParseAccountConfig(config)
2026-08-13 09:13:10 +08:00
if err != nil {
return err
}
client := rain.NewClient(cfg.APIKey)
userClient := user.Client{Client: client}
_, err = userClient.GetUserInfo()
if err != nil {
return fmt.Errorf("测试雨云账号配置失败: %v", err)
}
return nil
}
func (v *RainyunAccountConfigValidator) Meta() meta.AccountMeta {
return meta.AccountMeta{
Type: AccountType,
Label: "雨云",
Description: "对接雨云,方便各位代理/运维删库跑路",
Fields: []meta.Field{
{Key: "api_key", Label: "API Key", Type: meta.FieldPassword, Required: true, Secret: true, Placeholder: "xxxxxxxxx"},
},
}
}