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