Implement GET /webrtc/token endpoint for APIv4 (#6046)

Этот коммит содержится в:
Joram Wilander
2017-04-16 21:14:31 -04:00
коммит произвёл GitHub
родитель c7f26bb110
Коммит 74ffb6f98f
8 изменённых файлов: 215 добавлений и 69 удалений

Просмотреть файл

@@ -178,6 +178,7 @@ func InitApi(full bool) {
InitWebSocket()
InitEmoji()
InitReaction()
InitWebrtc()
app.Srv.Router.Handle("/api/v4/{anything:.*}", http.HandlerFunc(Handle404))

29
api4/webrtc.go Обычный файл
Просмотреть файл

@@ -0,0 +1,29 @@
// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package api4
import (
"net/http"
l4g "github.com/alecthomas/log4go"
"github.com/mattermost/platform/app"
"github.com/mattermost/platform/utils"
)
func InitWebrtc() {
l4g.Debug(utils.T("api.webrtc.init.debug"))
BaseRoutes.Webrtc.Handle("/token", ApiSessionRequired(webrtcToken)).Methods("GET")
}
func webrtcToken(c *Context, w http.ResponseWriter, r *http.Request) {
result, err := app.GetWebrtcInfoForSession(c.Session.Id)
if err != nil {
c.Err = err
return
}
w.Write([]byte(result.ToJson()))
}

29
api4/webrtc_test.go Обычный файл
Просмотреть файл

@@ -0,0 +1,29 @@
// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package api4
import (
"testing"
"github.com/mattermost/platform/utils"
)
func TestGetWebrtcToken(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
defer TearDown()
Client := th.Client
enableWebrtc := *utils.Cfg.WebrtcSettings.Enable
defer func() {
*utils.Cfg.WebrtcSettings.Enable = enableWebrtc
}()
*utils.Cfg.WebrtcSettings.Enable = false
_, resp := Client.GetWebrtcToken()
CheckNotImplementedStatus(t, resp)
Client.Logout()
_, resp = Client.GetWebrtcToken()
CheckUnauthorizedStatus(t, resp)
}