Skip to content

Commit

Permalink
Merge pull request #1407 from edenhaus/streams-api-multiple-sources
Browse files Browse the repository at this point in the history
Extend streams API to allow multiple sources
  • Loading branch information
AlexxIT authored Oct 24, 2024
2 parents ef7d898 + a8d394e commit 9d709f0
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 6 deletions.
4 changes: 2 additions & 2 deletions internal/streams/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ func apiStreams(w http.ResponseWriter, r *http.Request) {
name = src
}

if New(name, src) == nil {
if New(name, query["src"]...) == nil {
http.Error(w, "", http.StatusBadRequest)
return
}

if err := app.PatchConfig(name, src, "streams"); err != nil {
if err := app.PatchConfig(name, query["src"], "streams"); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
}

Expand Down
6 changes: 6 additions & 0 deletions internal/streams/stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ func NewStream(source any) *Stream {
return &Stream{
producers: []*Producer{NewProducer(source)},
}
case []string:
s := new(Stream)
for _, str := range source {
s.producers = append(s.producers, NewProducer(str))
}
return s
case []any:
s := new(Stream)
for _, src := range source {
Expand Down
10 changes: 6 additions & 4 deletions internal/streams/streams.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,14 @@ func Validate(source string) error {
return nil
}

func New(name string, source string) *Stream {
if Validate(source) != nil {
return nil
func New(name string, sources ...string) *Stream {
for _, source := range sources {
if Validate(source) != nil {
return nil
}
}

stream := NewStream(source)
stream := NewStream(sources)

streamsMu.Lock()
streams[name] = stream
Expand Down

0 comments on commit 9d709f0

Please sign in to comment.