mirror of https://github.com/authelia/authelia.git
63 lines
1.4 KiB
Go
63 lines
1.4 KiB
Go
package schema
|
|
|
|
// ErrorContainer represents a container where we can add errors and retrieve them.
|
|
type ErrorContainer interface {
|
|
Push(err error)
|
|
PushWarning(err error)
|
|
HasErrors() bool
|
|
HasWarnings() bool
|
|
Errors() []error
|
|
Warnings() []error
|
|
}
|
|
|
|
// StructValidator is a validator for structs.
|
|
type StructValidator struct {
|
|
errors []error
|
|
warnings []error
|
|
}
|
|
|
|
// NewStructValidator is a constructor of struct validator.
|
|
func NewStructValidator() *StructValidator {
|
|
val := new(StructValidator)
|
|
val.errors = make([]error, 0)
|
|
val.warnings = make([]error, 0)
|
|
|
|
return val
|
|
}
|
|
|
|
// Push an error to the validator.
|
|
func (v *StructValidator) Push(err error) {
|
|
v.errors = append(v.errors, err)
|
|
}
|
|
|
|
// PushWarning error to the validator.
|
|
func (v *StructValidator) PushWarning(err error) {
|
|
v.warnings = append(v.warnings, err)
|
|
}
|
|
|
|
// HasErrors checks whether the validator contains errors.
|
|
func (v *StructValidator) HasErrors() bool {
|
|
return len(v.errors) > 0
|
|
}
|
|
|
|
// HasWarnings checks whether the validator contains warning errors.
|
|
func (v *StructValidator) HasWarnings() bool {
|
|
return len(v.warnings) > 0
|
|
}
|
|
|
|
// Errors returns the errors.
|
|
func (v *StructValidator) Errors() []error {
|
|
return v.errors
|
|
}
|
|
|
|
// Warnings returns the warnings.
|
|
func (v *StructValidator) Warnings() []error {
|
|
return v.warnings
|
|
}
|
|
|
|
// Clear errors and warnings.
|
|
func (v *StructValidator) Clear() {
|
|
v.errors = []error{}
|
|
v.warnings = []error{}
|
|
}
|