godash/server/middlewares.go
2022-10-21 15:18:10 +02:00

28 lines
968 B
Go

package server
import (
"github.com/go-chi/chi/v5/middleware"
"github.com/go-chi/cors"
"github.com/sirupsen/logrus"
)
func (server *Server) setupMiddlewares() {
server.Router.Use(middleware.RealIP)
if logrus.GetLevel() == logrus.TraceLevel {
logger := logrus.New()
logger.Formatter = &logrus.TextFormatter{TimestampFormat: "2006/01/02 15:04:05", FullTimestamp: true}
server.Router.Use(newStructuredLogger(logger))
}
server.Router.Use(middleware.Recoverer)
server.Router.Use(middleware.CleanPath)
server.Router.Use(middleware.RedirectSlashes)
server.Router.Use(middleware.AllowContentEncoding("deflate", "gzip"))
server.Router.Use(middleware.Compress(5, "text/html", "text/js", "text/css"))
server.Router.Use(cors.Handler(cors.Options{
AllowedOrigins: server.AllowedHosts,
AllowedMethods: []string{"GET", "OPTIONS"},
AllowedHeaders: []string{"Accept-Encoding", "Content-Type"},
AllowCredentials: false,
MaxAge: 300,
}))
}