Files
goodBaby/drivers/rainyun/ruleConfigChecker.go
T

76 lines
1.9 KiB
Go
Raw Normal View History

2026-08-13 09:13:10 +08:00
package rainyun
import (
"fmt"
"github.com/ssdomei232/goodBaby/internal/meta"
)
// Rainyun规则验证器
type RainyunWorkorderRuleValidator struct{}
func (v *RainyunWorkorderRuleValidator) GetType() string {
2026-08-30 16:03:32 +08:00
return RuleTypeWorkOrder
2026-08-13 09:13:10 +08:00
}
func (v *RainyunWorkorderRuleValidator) Validate(configJSON string) error {
2026-09-12 15:32:27 +08:00
config, err := ParseWorkOrderConfig(configJSON)
if err != nil {
return err
2026-08-13 09:13:10 +08:00
}
if config.Title == "" {
return fmt.Errorf("雨云规则配置中 title 不能为空")
}
if config.Msg == "" {
return fmt.Errorf("雨云规则配置中 msg 不能为空")
}
return nil
}
func (v *RainyunWorkorderRuleValidator) Meta() meta.RuleMeta {
return meta.RuleMeta{
2026-08-30 16:03:32 +08:00
Type: RuleTypeWorkOrder,
2026-08-13 09:13:10 +08:00
Label: "发送雨云工单",
2026-08-13 09:18:26 +08:00
Description: "触发时发送雨云工单",
2026-08-13 09:13:10 +08:00
AccountType: AccountType,
Fields: []meta.Field{
{Key: "title", Label: "工单标题", Type: meta.FieldTextarea, Required: true},
{Key: "msg", Label: "工单内容", Type: meta.FieldTextarea, Required: true},
},
}
}
2026-08-13 14:46:43 +08:00
type RainyunRunAwayRuleValidator struct{}
func (v *RainyunRunAwayRuleValidator) GetType() string {
2026-08-30 16:03:32 +08:00
return RuleTypeRunAway
2026-08-13 14:46:43 +08:00
}
func (v *RainyunRunAwayRuleValidator) Validate(configJSON string) error {
2026-09-12 15:32:27 +08:00
config, err := ParseRunAwayConfig(configJSON)
if err != nil {
return err
2026-08-13 14:46:43 +08:00
}
2026-09-12 15:32:27 +08:00
if config.IK != runAwayConfirmText {
2026-08-13 14:46:43 +08:00
return fmt.Errorf("请输入正确内容")
}
return nil
}
func (v *RainyunRunAwayRuleValidator) Meta() meta.RuleMeta {
return meta.RuleMeta{
2026-08-30 16:03:32 +08:00
Type: RuleTypeRunAway,
2026-08-13 14:46:43 +08:00
Label: "重置雨云账号中所有云服务器(一键跑路)",
Description: "触发时会重装雨云账号下所有云服务器来实现跑路",
AccountType: AccountType,
Fields: []meta.Field{
2026-08-13 14:56:02 +08:00
{Key: "ik", Label: "免责声明", Type: meta.FieldTextarea, Required: true, Placeholder: "该操作引发的损失及法律责任归属账号所有人,本软件一律不承担,请输入\"我已知晓\""},
2026-08-13 14:46:43 +08:00
},
}
}