Redmage/pkg/errs/query.go

33 lines
576 B
Go
Raw Normal View History

2024-04-06 21:11:22 +07:00
package errs
import "errors"
func FindCodeOrDefault(err error, def int) int {
unwrap := errors.Unwrap(err)
for unwrap != nil {
2024-04-06 21:11:22 +07:00
if coder, ok := err.(interface{ GetCode() int }); ok {
code := coder.GetCode()
if code != 0 {
return code
2024-04-06 21:11:22 +07:00
}
}
unwrap = errors.Unwrap(unwrap)
2024-04-06 21:11:22 +07:00
}
2024-04-06 21:11:22 +07:00
return def
}
func FindMessage(err error) string {
unwrap := errors.Unwrap(err)
for unwrap != nil {
if messager, ok := err.(interface{ GetMessage() string }); ok {
message := messager.GetMessage()
if message != "" {
return message
}
}
}
return err.Error()
}