dashboard/routes/wrapperr.go
2025-05-21 09:37:59 +08:00

38 lines
629 B
Go

package routes
import (
"dashboard/models"
"dashboard/utils"
"errors"
"net/http"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type appHandler func(*gin.Context) error
func errWapper(appH appHandler) gin.HandlerFunc {
return func(c *gin.Context) {
log, _ := utils.GetLogFromContext(c)
err := appH(c)
if err != nil {
var baseErr *models.BaseError
if errors.As(err, &baseErr) {
log.Error("Base error", zap.Any("res", baseErr))
c.JSON(http.StatusBadRequest, baseErr)
return
}
log.Error("Other error", zap.Error(err))
c.String(http.StatusBadGateway, err.Error())
return
}
}
}