package middleware import ( "errors" "a301_server/pkg/apperror" "github.com/gofiber/fiber/v2" ) // ErrorHandler is a Fiber error handler that returns structured JSON for AppError. func ErrorHandler(c *fiber.Ctx, err error) error { var appErr *apperror.AppError if errors.As(err, &appErr) { return c.Status(appErr.Status).JSON(appErr) } // Default Fiber error handling var fiberErr *fiber.Error if errors.As(err, &fiberErr) { return c.Status(fiberErr.Code).JSON(fiber.Map{ "error": "server_error", "message": fiberErr.Message, }) } return c.Status(500).JSON(fiber.Map{ "error": "internal_error", "message": "서버 오류가 발생했습니다", }) }