Files
atomctl/templates/project/app/errorx/middleware.go.tpl

39 lines
793 B
Smarty

package errorx
import "github.com/gofiber/fiber/v3"
// 全局实例
var DefaultSender = NewResponseSender()
// Middleware 错误处理中间件
func Middleware(c fiber.Ctx) error {
err := c.Next()
if err != nil {
return DefaultSender.SendError(c, err)
}
return nil
}
// 便捷函数
func Wrap(err error) *AppError {
if err == nil {
return nil
}
if appErr, ok := err.(*AppError); ok {
return &AppError{
Code: appErr.Code,
Message: appErr.Message,
StatusCode: appErr.StatusCode,
Data: appErr.Data,
originalErr: appErr,
}
}
return DefaultSender.handler.Handle(err)
}
func SendError(ctx fiber.Ctx, err error) error {
return DefaultSender.SendError(ctx, err)
}