Files
nysoure/server/middleware/error_handler.go
2025-12-14 14:11:33 +08:00

34 lines
690 B
Go

package middleware
import (
"errors"
"nysoure/server/model"
"github.com/gofiber/fiber/v3/log"
"github.com/gofiber/fiber/v3"
)
func ErrorHandler(c fiber.Ctx) error {
err := c.Next()
if err != nil {
var fiberErr *fiber.Error
if errors.As(err, &fiberErr) {
if fiberErr.Code != fiber.StatusInternalServerError {
return c.Status(fiberErr.Code).JSON(model.Response[any]{
Success: false,
Data: nil,
Message: fiberErr.Message,
})
}
}
log.Error("Internal Server Error: ", err)
return c.Status(fiber.StatusInternalServerError).JSON(model.Response[any]{
Success: false,
Data: nil,
Message: "Internal server error",
})
}
return nil
}