Skip to content

Commit a32ae9b

Browse files
committed
chore: Add rule type name constants
1 parent 2dd67bc commit a32ae9b

File tree

3 files changed

+46
-30
lines changed

3 files changed

+46
-30
lines changed

config/root.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,11 @@ func LoadConfigFromFile(ctx context.Context, filePath string, watch bool, logger
147147
Router: Router{
148148
Rules: []*Rule{
149149
{
150-
Type: "always",
150+
Type: RuleTypeAlways,
151151
Sniff: jsonx.Listable[string]{"minecraft"},
152152
},
153153
{
154-
Type: "ServiceName",
154+
Type: RuleTypeServiceName,
155155
Parameter: json.RawMessage("\"Hypixel-in\""),
156156
Rewrite: RuleRewrite{
157157
Minecraft: &ruleRewriteMinecraft{

config/rule_type.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package config
2+
3+
const (
4+
RuleTypeAlways = "always"
5+
RuleTypeAnd = "and"
6+
RuleTypeOr = "or"
7+
8+
RuleTypeServiceName = "ServiceName"
9+
RuleTypeSourceIPVersion = "SourceIPVersion"
10+
RuleTypeSourceIP = "SourceIP"
11+
RuleTypeSourcePort = "SourcePort"
12+
RuleTypeMinecraftHostname = "MinecraftHostname"
13+
RuleTypeMinecraftPlayerName = "MinecraftPlayerName"
14+
RuleTypeMinecraftStatus = "MinecraftStatus"
15+
RuleTypeMinecraftTransfer = "MinecraftTransfer"
16+
)

route/rule.go

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -25,38 +25,38 @@ type Rule interface {
2525
Match(metadata *adapter.Metadata) bool
2626
}
2727

28-
func NewRule(logger *log.Logger, config *config.Rule, listMap map[string]set.StringSet, ruleRegistry map[string]CustomRuleInitializer) (Rule, error) {
29-
switch config.Type {
30-
case "always":
31-
return &RuleAlways{config}, nil
32-
case "and":
33-
return NewLogicalAndRule(logger, config, listMap, ruleRegistry)
34-
case "or":
35-
return NewLogicalOrRule(logger, config, listMap, ruleRegistry)
36-
case "ServiceName":
37-
return NewServiceNameRule(config, listMap)
38-
case "SourceIPVersion":
39-
return NewSourceIPVersionRule(config)
40-
case "SourceIP":
41-
return NewSourceIPRule(config, listMap)
42-
case "SourcePort":
43-
return NewSourcePortRule(config)
44-
case "MinecraftHostname":
45-
return NewMinecraftHostnameRule(config, listMap)
46-
case "MinecraftPlayerName":
47-
return NewMinecraftPlayerNameRule(config, listMap)
48-
case "MinecraftStatus":
49-
return NewMinecraftStatusRule(config)
50-
case "MinecraftTransfer":
51-
return NewMinecraftTransferRule(config)
28+
func NewRule(logger *log.Logger, ruleConfig *config.Rule, listMap map[string]set.StringSet, ruleRegistry map[string]CustomRuleInitializer) (Rule, error) {
29+
switch ruleConfig.Type {
30+
case config.RuleTypeAlways:
31+
return &RuleAlways{ruleConfig}, nil
32+
case config.RuleTypeAnd:
33+
return NewLogicalAndRule(logger, ruleConfig, listMap, ruleRegistry)
34+
case config.RuleTypeOr:
35+
return NewLogicalOrRule(logger, ruleConfig, listMap, ruleRegistry)
36+
case config.RuleTypeServiceName:
37+
return NewServiceNameRule(ruleConfig, listMap)
38+
case config.RuleTypeSourceIPVersion:
39+
return NewSourceIPVersionRule(ruleConfig)
40+
case config.RuleTypeSourceIP:
41+
return NewSourceIPRule(ruleConfig, listMap)
42+
case config.RuleTypeSourcePort:
43+
return NewSourcePortRule(ruleConfig)
44+
case config.RuleTypeMinecraftHostname:
45+
return NewMinecraftHostnameRule(ruleConfig, listMap)
46+
case config.RuleTypeMinecraftPlayerName:
47+
return NewMinecraftPlayerNameRule(ruleConfig, listMap)
48+
case config.RuleTypeMinecraftStatus:
49+
return NewMinecraftStatusRule(ruleConfig)
50+
case config.RuleTypeMinecraftTransfer:
51+
return NewMinecraftTransferRule(ruleConfig)
5252
}
53-
if len(ruleRegistry) > 0 && strings.HasPrefix(config.Type, typeCustomPrefix) {
54-
typeName := strings.TrimPrefix(config.Type, typeCustomPrefix)
53+
if len(ruleRegistry) > 0 && strings.HasPrefix(ruleConfig.Type, typeCustomPrefix) {
54+
typeName := strings.TrimPrefix(ruleConfig.Type, typeCustomPrefix)
5555
ruleInitializer, found := ruleRegistry[typeName]
5656
if !found {
5757
return nil, fmt.Errorf("unknown custom rule type: %s", typeName)
5858
}
59-
return ruleInitializer(logger, config, listMap)
59+
return ruleInitializer(logger, ruleConfig, listMap)
6060
}
61-
return nil, common.Cause("type ["+config.Type+"]: ", ErrRuleTypeNotFound)
61+
return nil, common.Cause("type ["+ruleConfig.Type+"]: ", ErrRuleTypeNotFound)
6262
}

0 commit comments

Comments
 (0)