forked from mirror/gorm
Don't add duplicated error
This commit is contained in:
parent
24aeec7a1e
commit
81c00fdc8f
13
errors.go
13
errors.go
|
@ -26,7 +26,18 @@ func (errs Errors) GetErrors() []error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (errs *Errors) Add(err error) {
|
func (errs *Errors) Add(err error) {
|
||||||
errs.errors = append(errs.errors, err)
|
if errors, ok := err.(errorsInterface); ok {
|
||||||
|
for _, err := range errors.GetErrors() {
|
||||||
|
errs.Add(err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for _, e := range errs.errors {
|
||||||
|
if err == e {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
errs.errors = append(errs.errors, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (errs Errors) Error() string {
|
func (errs Errors) Error() string {
|
||||||
|
|
8
main.go
8
main.go
|
@ -518,10 +518,10 @@ func (s *DB) AddError(err error) error {
|
||||||
s.log(err)
|
s.log(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if e, ok := err.(errorsInterface); ok {
|
errors := Errors{errors: s.GetErrors()}
|
||||||
err = Errors{errors: append(s.GetErrors(), e.GetErrors()...)}
|
errors.Add(err)
|
||||||
} else {
|
if len(errors.GetErrors()) > 1 {
|
||||||
err = Errors{errors: append(s.GetErrors(), err)}
|
err = errors
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue