Files
decort-golang-sdk/internal/validators/helper.go

54 lines
1.1 KiB
Go
Raw Normal View History

2022-10-03 16:56:47 +03:00
package validators
2023-03-17 12:54:34 +03:00
import (
"errors"
2023-10-25 17:37:18 +03:00
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/multierror"
2023-03-17 12:54:34 +03:00
"github.com/go-playground/validator/v10"
)
func ValidateRequest(req interface{}) error {
validate := getDecortValidator()
return validate.Struct(req)
}
2023-03-24 17:09:30 +03:00
func ValidateConfig(cfg interface{}) error {
validate := getDecortValidator()
return validate.Struct(cfg)
}
2023-03-17 12:54:34 +03:00
func ValidationError(fe validator.FieldError) error {
return errors.New(errorMessage(fe))
}
2023-10-25 17:37:18 +03:00
func ValidationErrors(fes []validator.FieldError) error {
errs := make([]error, 0, len(fes))
for _, fe := range fes {
errs = append(errs, ValidationError(fe))
}
return multierror.Join(errs...)
}
2023-03-17 12:54:34 +03:00
//nolint:errorlint
func GetErrors(err error) validator.ValidationErrors {
return err.(validator.ValidationErrors)
}
2024-04-16 14:26:06 +03:00
func IsInSlice(str string, target []string) bool {
2022-10-03 16:56:47 +03:00
for _, v := range target {
if v == str {
return true
}
}
return false
}
2024-04-16 14:26:06 +03:00
func IsSubSlice(source []string, target []string) bool {
for _, s := range source {
if !IsInSlice(s, target) {
return false
}
}
return true
}