GildedRose-Refactoring-Kata/go/api/middlewares/cors.go
2023-07-11 20:36:37 +01:00

34 lines
899 B
Go

package middlewares
import (
"github.com/emilybache/gildedrose-refactoring-kata/lib"
cors "github.com/rs/cors/wrapper/gin"
)
type CorsMiddleware struct {
handler lib.RequestHandler
logger lib.Logger
env lib.Env
}
func NewCorsMiddleware(handler lib.RequestHandler, logger lib.Logger, env lib.Env) CorsMiddleware {
return CorsMiddleware{
handler: handler,
logger: logger,
env: env,
}
}
func (this CorsMiddleware) Setup() {
this.logger.Info("Setting up cors middleware")
debug := this.env.Environment == "development"
this.handler.Gin.Use(cors.New(cors.Options{
AllowCredentials: true,
AllowOriginFunc: func(origin string) bool { return true },
AllowedHeaders: []string{"*"},
AllowedMethods: []string{"GET", "POST", "PUT", "HEAD", "OPTIONS"},
Debug: debug,
}))
}