github.com/weaviate/weaviate@v1.24.6/usecases/objects/validate.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package objects 13 14 import ( 15 "context" 16 17 "github.com/weaviate/weaviate/entities/additional" 18 "github.com/weaviate/weaviate/entities/models" 19 ) 20 21 // ValidateObject without adding it to the database. Can be used in UIs for 22 // async validation before submitting 23 func (m *Manager) ValidateObject(ctx context.Context, principal *models.Principal, 24 obj *models.Object, repl *additional.ReplicationProperties, 25 ) error { 26 err := m.authorizer.Authorize(principal, "validate", "objects") 27 if err != nil { 28 return err 29 } 30 31 unlock, err := m.locks.LockConnector() 32 if err != nil { 33 return NewErrInternal("could not acquire lock: %v", err) 34 } 35 defer unlock() 36 37 err = m.validateObjectAndNormalizeNames(ctx, principal, repl, obj, nil) 38 if err != nil { 39 return NewErrInvalidUserInput("invalid object: %v", err) 40 } 41 42 return nil 43 }