error_handler.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package dberrorhandler
  2. import (
  3. "github.com/zeromicro/go-zero/core/errorx"
  4. "github.com/zeromicro/go-zero/core/logx"
  5. "github.com/suyuan32/simple-admin-common/i18n"
  6. "github.com/suyuan32/simple-admin-common/msg/logmsg"
  7. "wechat-api/ent"
  8. )
  9. // DefaultEntError returns errors dealing with default functions.
  10. func DefaultEntError(logger logx.Logger, err error, detail any) error {
  11. if err != nil {
  12. switch {
  13. case ent.IsNotFound(err):
  14. logger.Errorw(err.Error(), logx.Field("detail", detail))
  15. return errorx.NewCodeInvalidArgumentError(i18n.TargetNotFound)
  16. case ent.IsConstraintError(err):
  17. logger.Errorw(err.Error(), logx.Field("detail", detail))
  18. return errorx.NewCodeInvalidArgumentError(i18n.ConstraintError)
  19. case ent.IsValidationError(err):
  20. logger.Errorw(err.Error(), logx.Field("detail", detail))
  21. return errorx.NewCodeInvalidArgumentError(i18n.ValidationError)
  22. case ent.IsNotSingular(err):
  23. logger.Errorw(err.Error(), logx.Field("detail", detail))
  24. return errorx.NewCodeInvalidArgumentError(i18n.NotSingularError)
  25. default:
  26. logger.Errorw(logmsg.DatabaseError, logx.Field("detail", err.Error()))
  27. return errorx.NewCodeInternalError(i18n.DatabaseError)
  28. }
  29. }
  30. return err
  31. }