Files
commons/check_valid.go
2026-04-17 20:41:21 -04:00

37 lines
587 B
Go

package commons
import (
"encoding/json"
"log"
"github.com/ianlancetaylor/jsonschema"
"github.com/ianlancetaylor/jsonschema/draft7"
)
func Validate(schema string, dataAny any) error {
data := StructToMapRecursive(dataAny)
content := []byte(schema)
var v any
if err := json.Unmarshal(content, &v); err != nil {
log.Printf("Failed to decode json %#v", err)
return err
}
vldtor, err := jsonschema.SchemaFromJSON(draft7.SchemaID, nil, v)
if err != nil {
return err
}
// validate
valid := vldtor.Validate(data)
if valid != nil {
return valid
}
return nil
}