34 lines
733 B
Go
34 lines
733 B
Go
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"
|
|
},
|
|
SigningMethod: conf.String("jwt.method"),
|
|
SigningKey: conf.Bytes("jwt.key"),
|
|
}))
|
|
}
|
|
|
|
func addHandlers(s *echo.Echo, pool *pgxpool.Pool) {
|
|
link.AddHandlers(s, pool)
|
|
}
|