summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to 'model')
-rw-r--r--model/client4.go10
-rw-r--r--model/config.go1
-rw-r--r--model/webrtc.go21
-rw-r--r--model/webrtc_test.go6
4 files changed, 32 insertions, 6 deletions
diff --git a/model/client4.go b/model/client4.go
index a7ee3df86..941145043 100644
--- a/model/client4.go
+++ b/model/client4.go
@@ -901,6 +901,16 @@ func (c *Client4) RevokeSession(userId, sessionId string) (bool, *Response) {
}
}
+// RevokeAllSessions revokes all sessions for the provided user id string.
+func (c *Client4) RevokeAllSessions(userId string) (bool, *Response) {
+ if r, err := c.DoApiPost(c.GetUserRoute(userId)+"/sessions/revoke/all", ""); err != nil {
+ return false, BuildErrorResponse(r, err)
+ } else {
+ defer closeBody(r)
+ return CheckStatusOK(r), BuildResponse(r)
+ }
+}
+
// AttachDeviceId attaches a mobile device ID to the current session.
func (c *Client4) AttachDeviceId(deviceId string) (bool, *Response) {
requestBody := map[string]string{"device_id": deviceId}
diff --git a/model/config.go b/model/config.go
index d9fbca451..7becddff4 100644
--- a/model/config.go
+++ b/model/config.go
@@ -465,6 +465,7 @@ type NativeAppSettings struct {
type WebrtcSettings struct {
Enable *bool
+ GatewayType *string
GatewayWebsocketUrl *string
GatewayAdminUrl *string
GatewayAdminSecret *string
diff --git a/model/webrtc.go b/model/webrtc.go
index fa15a4b71..3318128fe 100644
--- a/model/webrtc.go
+++ b/model/webrtc.go
@@ -11,19 +11,24 @@ import (
type WebrtcInfoResponse struct {
Token string `json:"token"`
GatewayUrl string `json:"gateway_url"`
+ GatewayType string `json:"gateway_type"`
StunUri string `json:"stun_uri,omitempty"`
TurnUri string `json:"turn_uri,omitempty"`
TurnPassword string `json:"turn_password,omitempty"`
TurnUsername string `json:"turn_username,omitempty"`
}
-type GatewayResponse struct {
+type JanusGatewayResponse struct {
Status string `json:"janus"`
}
-func GatewayResponseFromJson(data io.Reader) *GatewayResponse {
+type KopanoWebmeetingsResponse struct {
+ Value string `json:"value"`
+}
+
+func JanusGatewayResponseFromJson(data io.Reader) *JanusGatewayResponse {
decoder := json.NewDecoder(data)
- var o GatewayResponse
+ var o JanusGatewayResponse
err := decoder.Decode(&o)
if err == nil {
return &o
@@ -51,3 +56,13 @@ func WebrtcInfoResponseFromJson(data io.Reader) *WebrtcInfoResponse {
return nil
}
}
+
+func KopanoWebmeetingsResponseFromJson(data io.Reader) *KopanoWebmeetingsResponse {
+ decoder := json.NewDecoder(data)
+ var o KopanoWebmeetingsResponse
+ err := decoder.Decode(&o)
+ if err == nil {
+ return &o
+ }
+ return nil
+}
diff --git a/model/webrtc_test.go b/model/webrtc_test.go
index 4b8b26dc1..30a92f2b1 100644
--- a/model/webrtc_test.go
+++ b/model/webrtc_test.go
@@ -27,20 +27,20 @@ func TestWebrtcInfoResponseToFromJson(t *testing.T) {
}
}
-func TestGatewayResponseFromJson(t *testing.T) {
+func TestJanusGatewayResponseFromJson(t *testing.T) {
if testing.Short() {
t.SkipNow()
}
// Valid Gateway Response
s1 := `{"janus": "something"}`
- g1 := GatewayResponseFromJson(strings.NewReader(s1))
+ g1 := JanusGatewayResponseFromJson(strings.NewReader(s1))
CheckString(t, g1.Status, "something")
// Malformed JSON
s2 := `{"wat"`
- g2 := GatewayResponseFromJson(strings.NewReader(s2))
+ g2 := JanusGatewayResponseFromJson(strings.NewReader(s2))
if g2 != nil {
t.Fatal("expected nil")