Disconnect stream Admin API + HTTP Basic Auth (#204)

* Create http auth middleware

* Add support for ending the inbound stream. Closes #191

* Add a simple success response to API requests
This commit is contained in:
Gabe Kangas
2020-10-01 18:16:58 -07:00
committed by GitHub
parent f8068826ab
commit 7b64fc7c30
6 changed files with 90 additions and 0 deletions

19
controllers/admin.go Normal file
View File

@@ -0,0 +1,19 @@
package controllers
import (
"net/http"
"github.com/gabek/owncast/core"
"github.com/gabek/owncast/core/rtmp"
)
// DisconnectInboundConnection will force-disconnect an inbound stream
func DisconnectInboundConnection(w http.ResponseWriter, r *http.Request) {
if !core.GetStatus().Online {
writeSimpleResponse(w, false, "no inbound stream connected")
return
}
rtmp.Disconnect()
writeSimpleResponse(w, true, "inbound stream disconnected")
}

View File

@@ -3,6 +3,8 @@ package controllers
import (
"encoding/json"
"net/http"
"github.com/gabek/owncast/models"
)
type j map[string]interface{}
@@ -24,3 +26,12 @@ func badRequestHandler(w http.ResponseWriter, err error) {
w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(j{"error": err.Error()})
}
func writeSimpleResponse(w http.ResponseWriter, success bool, message string) {
response := models.BaseAPIResponse{
Success: success,
Message: message,
}
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(response)
}