diff options
author | 2021-09-01 18:29:25 +0200 | |
---|---|---|
committer | 2021-09-01 18:29:25 +0200 | |
commit | 4696e1a7b389599fa981f334b343daa911b11f5d (patch) | |
tree | d1ca0c896cdacb82ad7c64ee150aa32b37d4c053 /internal/gtsmodel/validate.go | |
parent | move oauth models into gtsmodel (diff) | |
download | gotosocial-4696e1a7b389599fa981f334b343daa911b11f5d.tar.xz |
moving stuff around
Diffstat (limited to 'internal/gtsmodel/validate.go')
-rw-r--r-- | internal/gtsmodel/validate.go | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/internal/gtsmodel/validate.go b/internal/gtsmodel/validate.go deleted file mode 100644 index 0e1957b28..000000000 --- a/internal/gtsmodel/validate.go +++ /dev/null @@ -1,75 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package gtsmodel - -import ( - "reflect" - - "github.com/go-playground/validator/v10" - "github.com/superseriousbusiness/gotosocial/internal/util" -) - -var v *validator.Validate - -// Validation Panic messages -const ( - PointerValidationPanic = "validate function was passed pointer" - InvalidValidationPanic = "validate function was passed invalid item" -) - -func ulidValidator(fl validator.FieldLevel) bool { - field := fl.Field() - - switch field.Kind() { - case reflect.String: - return util.ValidateULID(field.String()) - default: - return false - } -} - -func init() { - v = validator.New() - v.RegisterValidation("ulid", ulidValidator) -} - -// ValidateStruct validates the passed struct, returning validator.ValidationErrors if invalid, or nil if OK. -func ValidateStruct(s interface{}) error { - switch reflect.ValueOf(s).Kind() { - case reflect.Invalid: - panic(InvalidValidationPanic) - case reflect.Ptr: - panic(PointerValidationPanic) - } - - err := v.Struct(s) - return processValidationError(err) -} - -func processValidationError(err error) error { - if err == nil { - return nil - } - - if ive, ok := err.(*validator.InvalidValidationError); ok { - panic(ive) - } - - return err.(validator.ValidationErrors) -} |