Files
tecamino-dbm/main.go
2025-04-23 21:53:01 +02:00

48 lines
1.0 KiB
Go

package main
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/zuadi/tecamino-dbm/args"
"github.com/zuadi/tecamino-dbm/dbm"
"github.com/zuadi/tecamino-dbm/server"
)
func main() {
//cli arguments
a := args.Init()
dbmHandler, err := dbm.NewDbmHandler(a)
if err != nil {
panic(err)
}
defer dbmHandler.SaveDb()
//initialize new server
dbmHandler.Log.Debug("main", "initialize new server instance")
s := server.NewServer()
//set routes
dbmHandler.Log.Debug("main", "setting routes")
s.Routes.GET("/ws", dbmHandler.WebSocket)
s.Routes.POST("/json_data", s.JsonRequest)
s.Routes.GET("/", func(c *gin.Context) {
c.String(200, "DBM WebSocket Server is running!")
})
go func() {
dbmHandler.Log.Info("main", fmt.Sprintf("http listen on %d", a.Port.Http))
// start http server
if err := s.ServeHttp(a.Port.Http); err != nil {
dbmHandler.Log.Error("main", "error http server "+err.Error())
panic(err)
}
}()
dbmHandler.Log.Info("main", fmt.Sprintf("https listen on %d", a.Port.Https))
panic(s.ServeHttps(a.Port.Https, a.Cert))
}