mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-28 19:27:11 +02:00
feat(rules): add "on: default" rule syntax for default rule
- Add OnDefault rule type that matches when no other rules match - Add validation to prevent multiple default rules - Fix typo: extension → extensions in route config JSON tag
This commit is contained in:
committed by
github-actions[bot]
parent
a0c43ee93e
commit
4f8c02a792
@@ -26,6 +26,7 @@ func (on *RuleOn) Check(w http.ResponseWriter, r *http.Request) bool {
|
||||
}
|
||||
|
||||
const (
|
||||
OnDefault = "default"
|
||||
OnHeader = "header"
|
||||
OnQuery = "query"
|
||||
OnCookie = "cookie"
|
||||
@@ -50,6 +51,22 @@ var checkers = map[string]struct {
|
||||
builder func(args any) CheckFunc
|
||||
isResponseChecker bool
|
||||
}{
|
||||
OnDefault: {
|
||||
help: Help{
|
||||
command: OnDefault,
|
||||
description: makeLines(
|
||||
"The default rule is matched when no other rules are matched.",
|
||||
),
|
||||
args: map[string]string{},
|
||||
},
|
||||
validate: func(args []string) (any, gperr.Error) {
|
||||
if len(args) != 0 {
|
||||
return nil, ErrExpectNoArg
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
builder: func(args any) CheckFunc { return func(w http.ResponseWriter, r *http.Request) bool { return false } }, // this should never be called
|
||||
},
|
||||
OnHeader: {
|
||||
help: Help{
|
||||
command: OnHeader,
|
||||
|
||||
Reference in New Issue
Block a user