add services with statsu server state and remove stage lights

This commit is contained in:
Adrian Zuercher
2025-09-07 14:24:38 +02:00
parent a648be3bcb
commit 9585fb1b7a
35 changed files with 2387 additions and 328 deletions

View File

@@ -1,11 +1,11 @@
package main
import (
"backend/drivers"
"backend/login"
"backend/models"
secenes "backend/scenes"
"backend/server"
"backend/services"
"backend/utils"
"flag"
"fmt"
@@ -16,6 +16,7 @@ import (
"strings"
"time"
"gitea.tecamino.com/paadi/statusServer"
"gitea.tecamino.com/paadi/tecamino-logger/logging"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
@@ -29,7 +30,7 @@ func main() {
spa := flag.String("spa", "./dist/spa", "quasar spa files")
cfgDir := flag.String("cfg", "./cfg", "config dir")
driversCfg := flag.String("drivers", "defaultConfigurations.json", "drivers config file name")
servicesCfg := flag.String("services", "defaultConfigurations.json", "services config file name")
workingDir := flag.String("workingDirectory", ".", "quasar spa files")
ip := flag.String("ip", "0.0.0.0", "server listening ip")
port := flag.Uint("port", 9500, "server listening port")
@@ -38,7 +39,6 @@ func main() {
//change working directory only if value is given
if *workingDir != "." && *workingDir != "" {
fmt.Println(1, *workingDir)
os.Chdir(*workingDir)
}
@@ -73,17 +73,24 @@ func main() {
scenesHandler := secenes.NewScenesHandler("")
//new scenes handler
driversHandler := drivers.NewDriverHandler(filepath.Join(*cfgDir, *driversCfg))
servicesHandler := services.NewServicesHandler(*cfgDir, *servicesCfg)
// new server
s := server.NewServer()
// new status websocket
statusWs, err := statusServer.NewStatusWebsocket(5, 256, logger)
if err != nil {
logger.Error("main", fmt.Sprintf("initialize status websocket: %s", err.Error()))
}
servicesHandler.LinkStatusServer(statusWs)
//get local ip
allowOrigins = append(allowOrigins, "http://localhost:9000", "http://localhost:9500")
localIP, err := utils.GetLocalIP()
if err != nil {
logger.Error("main", fmt.Sprintf("get local ip : %s", err.Error()))
logger.Error("main", fmt.Sprintf("get local ip: %s", err.Error()))
} else {
allowOrigins = append(allowOrigins, fmt.Sprintf("http://%s:9000", localIP), fmt.Sprintf("http://%s:9500", localIP))
}
@@ -97,14 +104,21 @@ func main() {
api := s.Routes.Group("/api")
//set routes
api.GET("/loadScenes", scenesHandler.LoadScenes)
api.GET("/allDrivers", driversHandler.GetDriverList)
api.GET("/status", statusWs.NewConection)
api.GET("/scenes/all", scenesHandler.LoadScenes)
api.GET("/services/all", servicesHandler.GetAllAvaiableServices)
api.GET("/services/load", servicesHandler.LoadAllServices)
api.GET("/services/:service/start", servicesHandler.StartService)
api.GET("/services/:service/stop", servicesHandler.StopService)
api.POST("/login", loginManager.Login)
api.POST("/user/add", loginManager.AddUser)
api.POST("/saveScene", scenesHandler.SaveScene)
api.POST("/loadScene", scenesHandler.LoadScene)
api.DELETE("/user", loginManager.RemoveUser)
api.DELETE("/deleteScene", scenesHandler.DeleteScene)
api.POST("/scenes/save", scenesHandler.SaveScene)
api.POST("/scenes/load", scenesHandler.LoadScene)
api.POST("/services/add", servicesHandler.AddNewService)
api.DELETE("/user",
loginManager.RemoveUser)
api.DELETE("/scenes", scenesHandler.DeleteScene)
// Serve static files
s.Routes.StaticFS("/assets", gin.Dir(filepath.Join(*spa, "assets"), true))