package middleware

import (
	"net/http"

	"github.com/gin-gonic/gin"

	"security-center-backend/internal/pkg/logger"
	"security-center-backend/internal/pkg/response"
)

func Recovery(log *logger.Logger) gin.HandlerFunc {
	return func(c *gin.Context) {
		defer func() {
			if err := recover(); err != nil {
				log.Error("panic recovered", "error", err)
				response.Error(c, http.StatusInternalServerError, "internal server error")
				c.Abort()
			}
		}()

		c.Next()
	}
}
