docs: remove JSON examples from policy file docs (#945)
* docs: remove JSON examples from policy file docs Signed-off-by: Xe Iaso <me@xeiaso.net> * fix(lib): remove mentions of botPolicies.json in the tests Signed-off-by: Xe Iaso <me@xeiaso.net> * docs: update link to challenge methods Signed-off-by: Xe Iaso <me@xeiaso.net> * docs: unbreak links to the challenges category Signed-off-by: Xe Iaso <me@xeiaso.net> --------- Signed-off-by: Xe Iaso <me@xeiaso.net>
This commit is contained in:
parent
2d8e942377
commit
7c80c23e90
16 changed files with 86 additions and 301 deletions
|
|
@ -169,7 +169,7 @@ func httpClient(t *testing.T) *http.Client {
|
|||
}
|
||||
|
||||
func TestLoadPolicies(t *testing.T) {
|
||||
for _, fname := range []string{"botPolicies.json", "botPolicies.yaml"} {
|
||||
for _, fname := range []string{"botPolicies.yaml"} {
|
||||
t.Run(fname, func(t *testing.T) {
|
||||
fin, err := data.BotPolicies.Open(fname)
|
||||
if err != nil {
|
||||
|
|
|
|||
53
lib/policy/config/check.go
Normal file
53
lib/policy/config/check.go
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
//go:build ignore
|
||||
|
||||
package config
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/TecharoHQ/anubis/lib/checker"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrUnknownCheckType = errors.New("config.Bot.Check: unknown check type")
|
||||
)
|
||||
|
||||
type AllChecks struct {
|
||||
All []Check `json:"all"`
|
||||
}
|
||||
|
||||
type AnyChecks struct {
|
||||
All []Check `json:"any"`
|
||||
}
|
||||
|
||||
type Check struct {
|
||||
Type string `json:"type"`
|
||||
Args json.RawMessage `json:"args"`
|
||||
}
|
||||
|
||||
func (c *Check) Valid(ctx context.Context) error {
|
||||
var errs []error
|
||||
|
||||
if len(c.Type) == 0 {
|
||||
errs = append(errs, ErrNoStoreBackend)
|
||||
}
|
||||
|
||||
fac, ok := checker.Get(c.Type)
|
||||
switch ok {
|
||||
case true:
|
||||
if err := fac.Valid(ctx, c.Args); err != nil {
|
||||
errs = append(errs, err)
|
||||
}
|
||||
case false:
|
||||
errs = append(errs, fmt.Errorf("%w: %q", ErrUnknownCheckType, c.Type))
|
||||
}
|
||||
|
||||
if len(errs) != 0 {
|
||||
return errors.Join(errs...)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
@ -13,13 +13,13 @@ import (
|
|||
func TestDefaultPolicyMustParse(t *testing.T) {
|
||||
ctx := thothmock.WithMockThoth(t)
|
||||
|
||||
fin, err := data.BotPolicies.Open("botPolicies.json")
|
||||
fin, err := data.BotPolicies.Open("botPolicies.yaml")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer fin.Close()
|
||||
|
||||
if _, err := ParseConfig(ctx, fin, "botPolicies.json", anubis.DefaultDifficulty); err != nil {
|
||||
if _, err := ParseConfig(ctx, fin, "botPolicies.yaml", anubis.DefaultDifficulty); err != nil {
|
||||
t.Fatalf("can't parse config: %v", err)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue