chore(go): move stream keys to use generated type. For #3778
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/webserver/handlers/generated"
|
||||
)
|
||||
|
||||
// Defaults will hold default configuration values.
|
||||
@@ -25,7 +26,7 @@ type Defaults struct {
|
||||
WebServerIP string
|
||||
Name string
|
||||
AdminPassword string
|
||||
StreamKeys []models.StreamKey
|
||||
StreamKeys []generated.StreamKey
|
||||
|
||||
StreamVariants []models.StreamOutputVariant
|
||||
|
||||
@@ -43,14 +44,16 @@ type Defaults struct {
|
||||
|
||||
// GetDefaults will return default configuration values.
|
||||
func GetDefaults() Defaults {
|
||||
defaultStreamKey := "abc123"
|
||||
defaultStreamKeyComment := "Default stream key"
|
||||
return Defaults{
|
||||
Name: "New Owncast Server",
|
||||
Summary: "This is a new live video streaming server powered by Owncast.",
|
||||
ServerWelcomeMessage: "",
|
||||
Logo: "logo.svg",
|
||||
AdminPassword: "abc123",
|
||||
StreamKeys: []models.StreamKey{
|
||||
{Key: "abc123", Comment: "Default stream key"},
|
||||
StreamKeys: []generated.StreamKey{
|
||||
{Key: &defaultStreamKey, Comment: &defaultStreamKeyComment},
|
||||
},
|
||||
Tags: []string{
|
||||
"owncast",
|
||||
|
||||
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/owncast/owncast/config"
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/persistence/configrepository"
|
||||
"github.com/owncast/owncast/webserver/handlers/generated"
|
||||
)
|
||||
|
||||
var _hasInboundRTMPConnection = false
|
||||
@@ -87,11 +88,11 @@ func HandleConn(c *rtmp.Conn, nc net.Conn) {
|
||||
|
||||
// If a stream key override was specified then use that instead.
|
||||
if config.TemporaryStreamKey != "" {
|
||||
validStreamingKeys = []models.StreamKey{{Key: config.TemporaryStreamKey}}
|
||||
validStreamingKeys = []generated.StreamKey{{Key: &config.TemporaryStreamKey}}
|
||||
}
|
||||
|
||||
for _, key := range validStreamingKeys {
|
||||
if secretMatch(key.Key, c.URL.Path) {
|
||||
if key.Key != nil && secretMatch(*key.Key, c.URL.Path) {
|
||||
accessGranted = true
|
||||
break
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
package models
|
||||
|
||||
// StreamKey represents a single stream key.
|
||||
type StreamKey struct {
|
||||
Key string `json:"key"`
|
||||
Comment string `json:"comment"`
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/owncast/owncast/core/data"
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/webserver/handlers/generated"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@@ -63,8 +63,9 @@ func migrateToDatastoreValues2(datastore *data.Datastore, configRepository Confi
|
||||
oldAdminPassword, _ := datastore.GetString("stream_key")
|
||||
// Avoids double hashing the password
|
||||
_ = datastore.SetString("admin_password_key", oldAdminPassword)
|
||||
_ = configRepository.SetStreamKeys([]models.StreamKey{
|
||||
{Key: oldAdminPassword, Comment: "Default stream key"},
|
||||
comment := "Default stream key"
|
||||
_ = configRepository.SetStreamKeys([]generated.StreamKey{
|
||||
{Key: &oldAdminPassword, Comment: &comment},
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/utils"
|
||||
"github.com/owncast/owncast/webserver/handlers/generated"
|
||||
)
|
||||
|
||||
type ConfigRepository interface {
|
||||
@@ -114,8 +115,8 @@ type ConfigRepository interface {
|
||||
SetCustomOfflineMessage(message string) error
|
||||
SetCustomColorVariableValues(variables map[string]string) error
|
||||
GetCustomColorVariableValues() map[string]string
|
||||
GetStreamKeys() []models.StreamKey
|
||||
SetStreamKeys(actions []models.StreamKey) error
|
||||
GetStreamKeys() []generated.StreamKey
|
||||
SetStreamKeys(actions []generated.StreamKey) error
|
||||
SetDisableSearchIndexing(disableSearchIndexing bool) error
|
||||
GetDisableSearchIndexing() bool
|
||||
GetVideoServingEndpoint() string
|
||||
|
||||
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/static"
|
||||
"github.com/owncast/owncast/utils"
|
||||
"github.com/owncast/owncast/webserver/handlers/generated"
|
||||
"github.com/pkg/errors"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
@@ -957,22 +958,22 @@ func (r *SqlConfigRepository) GetCustomColorVariableValues() map[string]string {
|
||||
}
|
||||
|
||||
// GetStreamKeys will return valid stream keys.
|
||||
func (r *SqlConfigRepository) GetStreamKeys() []models.StreamKey {
|
||||
func (r *SqlConfigRepository) GetStreamKeys() []generated.StreamKey {
|
||||
configEntry, err := r.datastore.Get(streamKeysKey)
|
||||
if err != nil {
|
||||
return []models.StreamKey{}
|
||||
return []generated.StreamKey{}
|
||||
}
|
||||
|
||||
var streamKeys []models.StreamKey
|
||||
var streamKeys []generated.StreamKey
|
||||
if err := configEntry.GetObject(&streamKeys); err != nil {
|
||||
return []models.StreamKey{}
|
||||
return []generated.StreamKey{}
|
||||
}
|
||||
|
||||
return streamKeys
|
||||
}
|
||||
|
||||
// SetStreamKeys will set valid stream keys.
|
||||
func (r *SqlConfigRepository) SetStreamKeys(actions []models.StreamKey) error {
|
||||
func (r *SqlConfigRepository) SetStreamKeys(actions []generated.StreamKey) error {
|
||||
configEntry := models.ConfigEntry{Key: streamKeysKey, Value: actions}
|
||||
return r.datastore.Save(configEntry)
|
||||
}
|
||||
|
||||
@@ -916,31 +916,27 @@ func SetStreamKeys(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
type streamKeysRequest struct {
|
||||
Value []models.StreamKey `json:"value"`
|
||||
}
|
||||
|
||||
decoder := json.NewDecoder(r.Body)
|
||||
var streamKeys streamKeysRequest
|
||||
var streamKeys generated.SetStreamKeysJSONRequestBody
|
||||
if err := decoder.Decode(&streamKeys); err != nil {
|
||||
webutils.WriteSimpleResponse(w, false, "unable to update stream keys with provided values")
|
||||
return
|
||||
}
|
||||
|
||||
if len(streamKeys.Value) == 0 {
|
||||
if streamKeys.Value == nil || len(*streamKeys.Value) == 0 {
|
||||
webutils.WriteSimpleResponse(w, false, "must provide at least one valid stream key")
|
||||
return
|
||||
}
|
||||
|
||||
for _, streamKey := range streamKeys.Value {
|
||||
if streamKey.Key == "" {
|
||||
for _, streamKey := range *streamKeys.Value {
|
||||
if *streamKey.Key == "" {
|
||||
webutils.WriteSimpleResponse(w, false, "stream key cannot be empty")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
configRepository := configrepository.Get()
|
||||
if err := configRepository.SetStreamKeys(streamKeys.Value); err != nil {
|
||||
if err := configRepository.SetStreamKeys(*streamKeys.Value); err != nil {
|
||||
webutils.WriteSimpleResponse(w, false, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/persistence/configrepository"
|
||||
"github.com/owncast/owncast/utils"
|
||||
"github.com/owncast/owncast/webserver/handlers/generated"
|
||||
"github.com/owncast/owncast/webserver/router/middleware"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
@@ -118,7 +119,7 @@ type serverConfigAdminResponse struct {
|
||||
ExternalActions []models.ExternalAction `json:"externalActions"`
|
||||
ForbiddenUsernames []string `json:"forbiddenUsernames"`
|
||||
SuggestedUsernames []string `json:"suggestedUsernames"`
|
||||
StreamKeys []models.StreamKey `json:"streamKeys"`
|
||||
StreamKeys []generated.StreamKey `json:"streamKeys"`
|
||||
VideoSettings videoSettings `json:"videoSettings"`
|
||||
RTMPServerPort int `json:"rtmpServerPort"`
|
||||
WebServerPort int `json:"webServerPort"`
|
||||
|
||||
Reference in New Issue
Block a user