Use config in server

This commit is contained in:
2023-12-05 00:46:04 +01:00
parent e1e96e1e19
commit 8cb0ede570
2 changed files with 57 additions and 10 deletions

View File

@@ -19,15 +19,15 @@ import (
var static embed.FS
type Server struct {
users *UserStore
streams *StreamStore
config *Config
http.Server
}
func NewServer(store *UserStore) *Server {
func NewServer(config *Config) *Server {
srv := &Server{
users: store,
streams: NewStreamStore(),
config: config,
}
r := chi.NewRouter()
@@ -41,6 +41,7 @@ func NewServer(store *UserStore) *Server {
r.Patch("/whip/{streamKey}", srv.PatchHandler)
r.Post("/whip/{streamKey}", srv.PostOfferHandler)
r.Get("/stats", srv.streams.StatsHandler)
r.Get("/api/siteinfo", srv.InfoHandler)
srv.Handler = r
@@ -55,6 +56,17 @@ func corsMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(fn)
}
func (s *Server) InfoHandler(w http.ResponseWriter, r *http.Request) {
var infoResponse struct {
SiteName string `json:"siteName"`
}
infoResponse.SiteName = s.config.SiteName
if err := json.NewEncoder(w).Encode(&infoResponse); err != nil {
slog.Warn("Error writing info response")
}
}
func (s *Server) OptionsHandler(w http.ResponseWriter, r *http.Request) {
slog.Info("Got OPTIONS")
}