diff options
Diffstat (limited to 'model')
-rw-r--r-- | model/client4.go | 10 | ||||
-rw-r--r-- | model/config.go | 1 | ||||
-rw-r--r-- | model/webrtc.go | 21 | ||||
-rw-r--r-- | model/webrtc_test.go | 6 |
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") |