38 lines
835 B
Go
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()
|
|
}
|