package server import ( "github.com/ekzyis/hermes/pages" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" ) type Server struct { *echo.Echo } func New() *Server { e := echo.New() e.Static("/", "public") e.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{ Format: "${time_custom} ${remote_ip} ${method} ${uri} ${status}\n", CustomTimeFormat: "2006-01-02 15:04:05.00000-0700", })) e.Use(middleware.CORSWithConfig(middleware.CORSConfig{ // TODO: add CORS origins AllowOrigins: []string{}, AllowCredentials: true, AllowHeaders: []string{echo.HeaderOrigin, echo.HeaderContentType, echo.HeaderAccept}, })) // TODO: attach error handler // e.HTTPErrorHandler = ... e.GET("/", func(c echo.Context) error { return pages.Index().Render(c.Request().Context(), c.Response().Writer) }) s := &Server{e} return s }