package web import ( "platform/web/auth" "github.com/gofiber/contrib/otelfiber/v2" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/middleware/cors" "github.com/gofiber/fiber/v2/middleware/logger" "github.com/gofiber/fiber/v2/middleware/recover" "github.com/gofiber/fiber/v2/middleware/requestid" "github.com/google/uuid" "github.com/jxskiss/base62" ) func ApplyMiddlewares(app *fiber.App) { // recover app.Use(recover.New(recover.Config{ EnableStackTrace: true, })) // cors app.Use(cors.New(cors.Config{ AllowCredentials: true, AllowOriginsFunc: func(origin string) bool { return true }, })) // logger app.Use(logger.New(logger.Config{ Next: func(c *fiber.Ctx) bool { return c.Path() == "/favicon.ico" }, })) // metric app.Use(otelfiber.Middleware()) // request id app.Use(requestid.New(requestid.Config{ Generator: func() string { binary, _ := uuid.New().MarshalBinary() return base62.EncodeToString(binary) }, })) // authenticate app.Use(auth.Authenticate()) }