add more debug info to schema errors
This commit is contained in:
parent
2d4234c6a0
commit
00d12be3f5
@ -20,10 +20,10 @@ type Schema struct {
|
|||||||
schema gojsonschema.JSONLoader
|
schema gojsonschema.JSONLoader
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(name string, fs fs.FS) *Schema {
|
func New(name string, schemaFS fs.FS) *Schema {
|
||||||
path := fmt.Sprintf("file://schemas/%s.schema.json", name)
|
path := fmt.Sprintf("file://schemas/%s.schema.json", name)
|
||||||
|
|
||||||
return &Schema{schema: gojsonschema.NewReferenceLoaderFileSystem(path, http.FS(fs))}
|
return &Schema{schema: gojsonschema.NewReferenceLoaderFileSystem(path, http.FS(schemaFS))}
|
||||||
//return &Schema{schema: gojsonschema.NewReferenceLoader(path)}
|
//return &Schema{schema: gojsonschema.NewReferenceLoader(path)}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,10 +36,10 @@ func (s *Schema) Validate(source string) error {
|
|||||||
slog.Info("schema error", "source", source, "schema", s.schema, "result", result, "err", err)
|
slog.Info("schema error", "source", source, "schema", s.schema, "result", result, "err", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
slog.Info("schema.Validate()", "schema", s.schema, "result", result, "err", err)
|
|
||||||
|
|
||||||
if !result.Valid() {
|
if !result.Valid() {
|
||||||
schemaErrors := strings.Builder{}
|
schemaErrors := strings.Builder{}
|
||||||
|
schemaErrors.WriteString(fmt.Sprintf("source: %s schema: %#v ", source, s.schema))
|
||||||
for _, err := range result.Errors() {
|
for _, err := range result.Errors() {
|
||||||
schemaErrors.WriteString(err.String() + "\n")
|
schemaErrors.WriteString(err.String() + "\n")
|
||||||
}
|
}
|
||||||
@ -56,3 +56,11 @@ func (s *Schema) ValidateSchema() error {
|
|||||||
slog.Info("validate schema definition", "schemaloader", sl, "err", schemaErr)
|
slog.Info("validate schema definition", "schemaloader", sl, "err", schemaErr)
|
||||||
return schemaErr
|
return schemaErr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Schema) Debug(schemaFS fs.FS) {
|
||||||
|
if files, err := fs.ReadDir(schemaFS, "schemas"); err == nil {
|
||||||
|
for _, f := range files {
|
||||||
|
slog.Info("Schema.Debug()", "file", f.Name())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user