package link import ( "github.com/jackc/pgx/v4/pgxpool" "github.com/knadh/koanf" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "link/link" ) func NewServer(conf *koanf.Koanf, pool *pgxpool.Pool) *echo.Echo { server := echo.New() addMiddleware(server, conf) addHandlers(server, pool) return server } func addMiddleware(s *echo.Echo, conf *koanf.Koanf) { s.Use(middleware.CORS()) s.Use(middleware.JWTWithConfig(middleware.JWTConfig{ Skipper: func(ctx echo.Context) bool { return ctx.Request().Method == "GET" && ctx.Request().URL.Path != "/links" }, SigningMethod: conf.String("jwt.method"), SigningKey: conf.Bytes("jwt.key"), })) } func addHandlers(s *echo.Echo, pool *pgxpool.Pool) { link.AddHandlers(s, pool) }