godash/server/server.go
2022-11-27 11:25:57 +01:00

38 lines
835 B
Go

package server
import (
"fmt"
hertz "github.com/cloudwego/hertz/pkg/app/server"
"github.com/sirupsen/logrus"
"godash/config"
"godash/hub"
)
var server = Server{}
const TemplatesFolder = "templates/"
func NewServer() {
config.ParseViperConfig(&server, config.AddViperConfig("server"))
server.Router = hertz.Default(
hertz.WithHostPorts(fmt.Sprintf(":%d", server.Port)),
hertz.WithRemoveExtraSlash(true),
hertz.WithRedirectTrailingSlash(true),
hertz.WithGetOnly(true),
)
setupLogging()
server.setupMiddlewares()
server.prepareHtml()
server.Hub = hub.NewHub()
server.setupRouter()
server.Listen()
}
func (server *Server) prepareHtml() {
server.Router.LoadHTMLGlob(TemplatesFolder + "*")
}
func (server *Server) Listen() {
logrus.WithField("port", server.Port).Info("server starting")
server.Router.Spin()
}