package middlewares

import (
	"GoMembership/internal/config"
	"GoMembership/pkg/logger"
	"strings"

	"github.com/gin-contrib/cors"
	"github.com/gin-gonic/gin"
)

func CORSMiddleware() gin.HandlerFunc {
	logger.Info.Print("Applying CORS")
	return cors.New(cors.Config{
		AllowOrigins:     strings.Split(config.Site.AllowOrigins, ","),
		AllowMethods:     []string{"GET", "POST", "PATCH", "OPTIONS"}, // "PUT", "PATCH", "DELETE", "OPTIONS"},
		AllowHeaders:     []string{"Origin", "Content-Type", "Accept", "Authorization", "X-Requested-With", "X-CSRF-Token"},
		ExposeHeaders:    []string{"Content-Length"},
		AllowCredentials: true,
		MaxAge:           12 * 60 * 60, // 12 hours
	})
}
