first commit of files

This commit is contained in:
Adrian Zürcher
2025-04-18 10:30:18 +02:00
parent 5595af0add
commit f213f53547
22 changed files with 842 additions and 0 deletions

48
server/server.go Normal file
View File

@@ -0,0 +1,48 @@
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
}
func NewServer() *Server {
s := Server{
engine: gin.Default(),
Subscribers: serverModels.InitSubsrcibers(),
}
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
}
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
}