diff --git a/server/allBuses.go b/server/allBuses.go deleted file mode 100644 index bcd94a3..0000000 --- a/server/allBuses.go +++ /dev/null @@ -1,18 +0,0 @@ -package server - -import ( - "github.com/gin-gonic/gin" -) - -func (s *Server) AllBuses(c *gin.Context) { - var data any - if s.Driver.Bus == nil { - data = "no buses avaiable" - } else { - data = s.Driver.Bus - } - - c.JSON(200, gin.H{ - "buses": data, - }) -} diff --git a/server/jsonRequest.go b/server/jsonRequest.go deleted file mode 100644 index 1160d3f..0000000 --- a/server/jsonRequest.go +++ /dev/null @@ -1,25 +0,0 @@ -package server - -import ( - "net/http" - - "artNet/models" - - "github.com/gin-gonic/gin" -) - -func (s *Server) JsonRequest(c *gin.Context) { - var payload models.JsonData - - if err := c.BindJSON(&payload); err != nil { - - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } - - c.JSON(200, gin.H{ - "name": payload, - }) - return - -} diff --git a/server/models/response.go b/server/models/response.go deleted file mode 100644 index 84cef66..0000000 --- a/server/models/response.go +++ /dev/null @@ -1,7 +0,0 @@ -package models - -type Response struct { - StatusCode int `json:"statusCode"` - Message string `json:"message,omitempty"` - Data string `json:"dat,omitempty"` -} diff --git a/server/models/subscribers.go b/server/models/subscribers.go deleted file mode 100644 index fd4a6fb..0000000 --- a/server/models/subscribers.go +++ /dev/null @@ -1,26 +0,0 @@ -package models - -import "github.com/coder/websocket" - -type Subscribers map[*websocket.Conn]*bool - -func InitSubsrcibers() Subscribers { - return make(Subscribers) -} - -func (s *Subscribers) Connect(conn *websocket.Conn) { - b := true - (*s)[conn] = &b -} - -func (s *Subscribers) DeleteSubsrcibers(conn *websocket.Conn) { - delete(*s, conn) -} - -func (s *Subscribers) GetPointer(conn *websocket.Conn) *bool { - return (*s)[conn] -} - -func (s *Subscribers) Disconnect(conn *websocket.Conn) { - *(*s)[conn] = false -} diff --git a/server/routes.go b/server/routes.go deleted file mode 100644 index a3a822f..0000000 --- a/server/routes.go +++ /dev/null @@ -1,16 +0,0 @@ -package server - -import ( - "github.com/gin-gonic/gin" -) - -func (s *Server) AddRoutes() { - - s.engine.GET("/ws", s.handleWebSocket) - - s.engine.GET("/allBuses", s.AllBuses) - - s.engine.GET("/", func(c *gin.Context) { - c.String(200, "WebSocket Broadcast Server is running!") - }) -} diff --git a/server/server.go b/server/server.go index 18453d4..0d11f44 100644 --- a/server/server.go +++ b/server/server.go @@ -2,47 +2,27 @@ package server import ( "fmt" - "sync" "artNet/cert" - "artNet/driver" - serverModels "artNet/server/models" "github.com/gin-gonic/gin" - "github.com/tecamino/tecamino-logger/logging" ) type Server struct { - engine *gin.Engine - sync.RWMutex - Subscribers serverModels.Subscribers - Logger *logging.Logger - Driver *driver.ArtNetDriver + Routes *gin.Engine } +// Initialize new websocket server func NewServer() *Server { - s := Server{ - engine: gin.Default(), - Subscribers: serverModels.InitSubsrcibers(), + return &Server{ + Routes: gin.Default(), } - s.AddRoutes() - - s.Driver = driver.NewDriver() - - return &s } func (s *Server) ServeHttp(port uint) error { - if err := s.engine.Run(fmt.Sprintf(":%d", port)); err != nil { - return fmt.Errorf("failed to run http server: %v", err) - } - return nil + return s.Routes.Run(fmt.Sprintf(":%d", port)) } func (s *Server) ServeHttps(port uint, cert cert.Cert) error { - cert.GenerateSelfSignedCert() - if err := s.engine.RunTLS(fmt.Sprintf(":%d", port), cert.CertFile, cert.KeyFile); err != nil { - return fmt.Errorf("failed to run https server: %v", err) - } - return nil + return s.Routes.RunTLS(fmt.Sprintf(":%d", port), cert.CertFile, cert.KeyFile) } diff --git a/server/set.go b/server/set.go deleted file mode 100644 index 8e4e78a..0000000 --- a/server/set.go +++ /dev/null @@ -1,13 +0,0 @@ -package server - -import ( - "artNet/models" - "fmt" -) - -func (s *Server) Set(get models.Get) error { - if len(s.Driver.Bus) <= int(get.Bus) { - return fmt.Errorf("no bus number '%d' found", get.Bus) - } - return nil -} diff --git a/server/webSocket.go b/server/webSocket.go deleted file mode 100644 index 17eca09..0000000 --- a/server/webSocket.go +++ /dev/null @@ -1,65 +0,0 @@ -package server - -import ( - "context" - "fmt" - "log" - "time" - - "artNet/models" - - "github.com/coder/websocket" - "github.com/coder/websocket/wsjson" - "github.com/gin-gonic/gin" -) - -const ( - OnCreate = "onCreate" - OnChange = "onChange" - OnDelete = "onDelete" -) - -func (s *Server) handleWebSocket(c *gin.Context) { - conn, err := websocket.Accept(c.Writer, c.Request, &websocket.AcceptOptions{ - OriginPatterns: []string{"*"}, - }) - if err != nil { - log.Println("Upgrade error:", err) - return - } - - defer conn.Close(websocket.StatusInternalError, "Internal error") - - ctx, cancel := context.WithTimeout(c.Request.Context(), 10*time.Minute) - defer cancel() - - s.Subscribers.Connect(conn) - - //Read loop - for { - var request models.JsonData - err := wsjson.Read(ctx, conn, &request) - if err != nil { - fmt.Println(s.Subscribers[conn]) - log.Println("WebSocket read error:", err) - s.Subscribers.Disconnect(conn) - fmt.Println(s.Subscribers[conn]) - break - } - - // Set - // if request.Set != nil { - // for _, set := range *request.Set { - // err = s.Unsubscribe(unsub, conn) - // if err != nil { - // fmt.Println(err) - // break - // } - // } - // } - - if err != nil { - break - } - } -}