Files
screego/router/router.go
Jannis Mattheis 56189c99ea Add version to ui
2020-10-04 20:10:38 +02:00

42 lines
1.1 KiB
Go

package router
import (
"encoding/json"
"net/http"
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
"github.com/screego/server/auth"
"github.com/screego/server/config"
"github.com/screego/server/ui"
"github.com/screego/server/ws"
)
type UIConfig struct {
AuthMode string `json:"authMode"`
User string `json:"user"`
LoggedIn bool `json:"loggedIn"`
Version string `json:"version"`
}
func Router(conf config.Config, rooms *ws.Rooms, users *auth.Users, version string) *mux.Router {
router := mux.NewRouter()
router.Use(handlers.CORS(handlers.AllowedMethods([]string{"GET", "POST"}), handlers.AllowedOriginValidator(conf.CheckOrigin)))
router.HandleFunc("/stream", rooms.Upgrade)
router.Methods("POST").Path("/login").HandlerFunc(users.Authenticate)
router.Methods("POST").Path("/logout").HandlerFunc(users.Logout)
router.Methods("GET").Path("/config").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user, loggedIn := users.CurrentUser(r)
_ = json.NewEncoder(w).Encode(&UIConfig{
AuthMode: conf.AuthMode,
LoggedIn: loggedIn,
User: user,
Version: version,
})
})
ui.Register(router)
return router
}