summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to 'model')
-rw-r--r--model/access.go3
-rw-r--r--model/access_test.go2
-rw-r--r--model/analytics_row.go2
-rw-r--r--model/analytics_row_test.go2
-rw-r--r--model/audit.go2
-rw-r--r--model/audit_test.go2
-rw-r--r--model/audits.go2
-rw-r--r--model/audits_test.go2
-rw-r--r--model/authorization.go2
-rw-r--r--model/authorize.go2
-rw-r--r--model/authorize_test.go2
-rw-r--r--model/channel.go2
-rw-r--r--model/channel_count.go2
-rw-r--r--model/channel_data.go2
-rw-r--r--model/channel_list.go2
-rw-r--r--model/channel_member.go2
-rw-r--r--model/channel_member_test.go2
-rw-r--r--model/channel_search.go2
-rw-r--r--model/channel_search_test.go2
-rw-r--r--model/channel_stats.go2
-rw-r--r--model/channel_test.go2
-rw-r--r--model/channel_view.go2
-rw-r--r--model/client.go7
-rw-r--r--model/client4.go208
-rw-r--r--model/cluster_info.go2
-rw-r--r--model/cluster_info_test.go2
-rw-r--r--model/cluster_stats.go2
-rw-r--r--model/cluster_stats_test.go2
-rw-r--r--model/command.go2
-rw-r--r--model/command_args.go2
-rw-r--r--model/command_response.go2
-rw-r--r--model/command_response_test.go2
-rw-r--r--model/command_test.go2
-rw-r--r--model/compliance.go2
-rw-r--r--model/compliance_post.go2
-rw-r--r--model/compliance_post_test.go2
-rw-r--r--model/compliance_test.go2
-rw-r--r--model/config.go8
-rw-r--r--model/emoji.go2
-rw-r--r--model/emoji_test.go2
-rw-r--r--model/file.go2
-rw-r--r--model/file_info.go2
-rw-r--r--model/file_info_test.go2
-rw-r--r--model/gitlab.go2
-rw-r--r--model/gitlab/gitlab.go2
-rw-r--r--model/incoming_webhook.go2
-rw-r--r--model/incoming_webhook_test.go2
-rw-r--r--model/initial_load.go2
-rw-r--r--model/initial_load_test.go2
-rw-r--r--model/job.go2
-rw-r--r--model/job_test.go2
-rw-r--r--model/ldap.go2
-rw-r--r--model/license.go2
-rw-r--r--model/license_test.go2
-rw-r--r--model/mfa_secret.go2
-rw-r--r--model/mfa_secret_test.go2
-rw-r--r--model/oauth.go2
-rw-r--r--model/oauth_test.go2
-rw-r--r--model/outgoing_webhook.go2
-rw-r--r--model/outgoing_webhook_test.go2
-rw-r--r--model/password_recovery.go2
-rw-r--r--model/post.go2
-rw-r--r--model/post_list.go2
-rw-r--r--model/post_list_test.go2
-rw-r--r--model/post_test.go2
-rw-r--r--model/preference.go2
-rw-r--r--model/preference_test.go2
-rw-r--r--model/preferences.go2
-rw-r--r--model/push_notification.go2
-rw-r--r--model/push_notification_test.go2
-rw-r--r--model/push_response.go2
-rw-r--r--model/reaction.go2
-rw-r--r--model/reaction_test.go2
-rw-r--r--model/saml.go2
-rw-r--r--model/saml_test.go2
-rw-r--r--model/search_params.go12
-rw-r--r--model/search_params_test.go2
-rw-r--r--model/security_bulletin.go2
-rw-r--r--model/session.go2
-rw-r--r--model/session_test.go2
-rw-r--r--model/slack_attachment.go2
-rw-r--r--model/status.go2
-rw-r--r--model/status_test.go2
-rw-r--r--model/suggest_command.go2
-rw-r--r--model/suggest_command_test.go2
-rw-r--r--model/switch_request.go62
-rw-r--r--model/switch_request_test.go19
-rw-r--r--model/system.go2
-rw-r--r--model/system_test.go2
-rw-r--r--model/team.go2
-rw-r--r--model/team_member.go2
-rw-r--r--model/team_member_test.go2
-rw-r--r--model/team_search.go2
-rw-r--r--model/team_search_test.go2
-rw-r--r--model/team_stats.go2
-rw-r--r--model/team_test.go2
-rw-r--r--model/user.go42
-rw-r--r--model/user_autocomplete.go2
-rw-r--r--model/user_search.go2
-rw-r--r--model/user_search_test.go2
-rw-r--r--model/user_test.go57
-rw-r--r--model/utils.go2
-rw-r--r--model/utils_test.go2
-rw-r--r--model/version.go2
-rw-r--r--model/version_test.go2
-rw-r--r--model/webrtc.go32
-rw-r--r--model/webrtc_test.go19
-rw-r--r--model/websocket_client.go2
-rw-r--r--model/websocket_message.go2
-rw-r--r--model/websocket_message_test.go2
-rw-r--r--model/websocket_request.go2
-rw-r--r--model/websocket_request_test.go2
112 files changed, 523 insertions, 148 deletions
diff --git a/model/access.go b/model/access.go
index 520417f4e..9e16ed58b 100644
--- a/model/access.go
+++ b/model/access.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
@@ -21,6 +21,7 @@ type AccessData struct {
RefreshToken string `json:"refresh_token"`
RedirectUri string `json:"redirect_uri"`
ExpiresAt int64 `json:"expires_at"`
+ Scope string `json:"scope"`
}
type AccessResponse struct {
diff --git a/model/access_test.go b/model/access_test.go
index 77b4cf15b..f0ed2da77 100644
--- a/model/access_test.go
+++ b/model/access_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/analytics_row.go b/model/analytics_row.go
index ed1d69dd2..5493163dc 100644
--- a/model/analytics_row.go
+++ b/model/analytics_row.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/analytics_row_test.go b/model/analytics_row_test.go
index 1202d5b52..bd4e96c7d 100644
--- a/model/analytics_row_test.go
+++ b/model/analytics_row_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/audit.go b/model/audit.go
index 8fa1d5584..7699cf930 100644
--- a/model/audit.go
+++ b/model/audit.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/audit_test.go b/model/audit_test.go
index f4a2b6bcc..44e4cfb34 100644
--- a/model/audit_test.go
+++ b/model/audit_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/audits.go b/model/audits.go
index 36c80629f..e57e2a3ac 100644
--- a/model/audits.go
+++ b/model/audits.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/audits_test.go b/model/audits_test.go
index 6c7104475..3b22b2668 100644
--- a/model/audits_test.go
+++ b/model/audits_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/authorization.go b/model/authorization.go
index 384e4c865..458ed1bdb 100644
--- a/model/authorization.go
+++ b/model/authorization.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/authorize.go b/model/authorize.go
index 3f259718b..2f290fab2 100644
--- a/model/authorize.go
+++ b/model/authorize.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/authorize_test.go b/model/authorize_test.go
index 82a48332c..cbb57d54c 100644
--- a/model/authorize_test.go
+++ b/model/authorize_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel.go b/model/channel.go
index d80674444..50d487557 100644
--- a/model/channel.go
+++ b/model/channel.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_count.go b/model/channel_count.go
index 6cc1b2f2d..aecb0c712 100644
--- a/model/channel_count.go
+++ b/model/channel_count.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_data.go b/model/channel_data.go
index 731d50e70..41b7eaa65 100644
--- a/model/channel_data.go
+++ b/model/channel_data.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_list.go b/model/channel_list.go
index 7a46de45d..18c726908 100644
--- a/model/channel_list.go
+++ b/model/channel_list.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_member.go b/model/channel_member.go
index 32ffaf606..f6d58519a 100644
--- a/model/channel_member.go
+++ b/model/channel_member.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_member_test.go b/model/channel_member_test.go
index 6fb666300..26c9c3ddf 100644
--- a/model/channel_member_test.go
+++ b/model/channel_member_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_search.go b/model/channel_search.go
index 2c041503d..d915c164e 100644
--- a/model/channel_search.go
+++ b/model/channel_search.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_search_test.go b/model/channel_search_test.go
index f7f6d66f7..97c1b3ecd 100644
--- a/model/channel_search_test.go
+++ b/model/channel_search_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_stats.go b/model/channel_stats.go
index 079769eb0..758aa2b15 100644
--- a/model/channel_stats.go
+++ b/model/channel_stats.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_test.go b/model/channel_test.go
index 207ce4639..ee6a70b0d 100644
--- a/model/channel_test.go
+++ b/model/channel_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/channel_view.go b/model/channel_view.go
index 8be7af175..8a7ead76f 100644
--- a/model/channel_view.go
+++ b/model/channel_view.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/client.go b/model/client.go
index 74793c5eb..564aa2e48 100644
--- a/model/client.go
+++ b/model/client.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
@@ -1841,15 +1841,14 @@ func (c *Client) GetTeamStats(teamId string) (*Result, *AppError) {
}
}
-// GetTeamStats will return a team stats object containing the number of users on the team
-// based on the team id provided. Must be authenticated.
+// GetTeamByName will return a team object based on the team name provided. Must be authenticated.
func (c *Client) GetTeamByName(teamName string) (*Result, *AppError) {
if r, err := c.DoApiGet(fmt.Sprintf("/teams/name/%v", teamName), "", ""); err != nil {
return nil, err
} else {
defer closeBody(r)
return &Result{r.Header.Get(HEADER_REQUEST_ID),
- r.Header.Get(HEADER_ETAG_SERVER), TeamStatsFromJson(r.Body)}, nil
+ r.Header.Get(HEADER_ETAG_SERVER), TeamFromJson(r.Body)}, nil
}
}
diff --git a/model/client4.go b/model/client4.go
index cd9a6de75..ad3ff51a4 100644
--- a/model/client4.go
+++ b/model/client4.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
@@ -226,6 +226,18 @@ func (c *Client4) GetCommandsRoute() string {
return fmt.Sprintf("/commands")
}
+func (c *Client4) GetCommandRoute(commandId string) string {
+ return fmt.Sprintf(c.GetCommandsRoute()+"/%v", commandId)
+}
+
+func (c *Client4) GetEmojisRoute() string {
+ return fmt.Sprintf("/emoji")
+}
+
+func (c *Client4) GetEmojiRoute(emojiId string) string {
+ return fmt.Sprintf(c.GetEmojisRoute()+"/%v", emojiId)
+}
+
func (c *Client4) DoApiGet(url string, etag string) (*http.Response, *AppError) {
return c.DoApiRequest(http.MethodGet, url, "", etag)
}
@@ -285,6 +297,25 @@ func (c *Client4) DoUploadFile(url string, data []byte, contentType string) (*Fi
}
}
+func (c *Client4) DoEmojiUploadFile(url string, data []byte, contentType string) (*Emoji, *Response) {
+ rq, _ := http.NewRequest("POST", c.ApiUrl+url, bytes.NewReader(data))
+ rq.Header.Set("Content-Type", contentType)
+ rq.Close = true
+
+ if len(c.AuthToken) > 0 {
+ rq.Header.Set(HEADER_AUTH, c.AuthType+" "+c.AuthToken)
+ }
+
+ if rp, err := c.HttpClient.Do(rq); err != nil {
+ return nil, &Response{Error: NewAppError(url, "model.client.connecting.app_error", nil, err.Error(), 0)}
+ } else if rp.StatusCode >= 300 {
+ return nil, &Response{StatusCode: rp.StatusCode, Error: AppErrorFromJson(rp.Body)}
+ } else {
+ defer closeBody(rp)
+ return EmojiFromJson(rp.Body), BuildResponse(rp)
+ }
+}
+
func (c *Client4) DoUploadImportTeam(url string, data []byte, contentType string) ([]byte, *Response) {
rq, _ := http.NewRequest("POST", c.ApiUrl+url, bytes.NewReader(data))
rq.Header.Set("Content-Type", contentType)
@@ -382,6 +413,16 @@ func (c *Client4) Logout() (bool, *Response) {
}
}
+// SwitchAccountType changes a user's login type from one type to another.
+func (c *Client4) SwitchAccountType(switchRequest *SwitchRequest) (string, *Response) {
+ if r, err := c.DoApiPost(c.GetUsersRoute()+"/login/switch", switchRequest.ToJson()); err != nil {
+ return "", &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return MapFromJson(r.Body)["follow_link"], BuildResponse(r)
+ }
+}
+
// User Section
// CreateUser creates a user in the system based on the provided user struct.
@@ -652,6 +693,19 @@ func (c *Client4) UpdateUserRoles(userId, roles string) (bool, *Response) {
}
}
+// UpdateUserActive updates status of a user whether active or not.
+func (c *Client4) UpdateUserActive(userId string, active bool) (bool, *Response) {
+ requestBody := make(map[string]interface{})
+ requestBody["active"] = active
+
+ if r, err := c.DoApiPut(c.GetUserRoute(userId)+"/active", StringInterfaceToJson(requestBody)); err != nil {
+ return false, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return CheckStatusOK(r), BuildResponse(r)
+ }
+}
+
// DeleteUser deactivates a user in the system based on the provided user id string.
func (c *Client4) DeleteUser(userId string) (bool, *Response) {
if r, err := c.DoApiDelete(c.GetUserRoute(userId)); err != nil {
@@ -1415,6 +1469,47 @@ func (c *Client4) GetPostsForChannel(channelId string, page, perPage int, etag s
}
}
+// GetFlaggedPostsForUser returns flagged posts of a user based on user id string.
+func (c *Client4) GetFlaggedPostsForUser(userId string, page int, perPage int) (*PostList, *Response) {
+ query := fmt.Sprintf("?page=%v&per_page=%v", page, perPage)
+ if r, err := c.DoApiGet(c.GetUserRoute(userId)+"/posts/flagged"+query, ""); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return PostListFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// GetFlaggedPostsForUserInTeam returns flagged posts in team of a user based on user id string.
+func (c *Client4) GetFlaggedPostsForUserInTeam(userId string, teamId string, page int, perPage int) (*PostList, *Response) {
+ if len(teamId) == 0 || len(teamId) != 26 {
+ return nil, &Response{StatusCode: http.StatusBadRequest, Error: NewAppError("GetFlaggedPostsForUserInTeam", "model.client.get_flagged_posts_in_team.missing_parameter.app_error", nil, "", http.StatusBadRequest)}
+ }
+
+ query := fmt.Sprintf("?in_team=%v&page=%v&per_page=%v", teamId, page, perPage)
+ if r, err := c.DoApiGet(c.GetUserRoute(userId)+"/posts/flagged"+query, ""); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return PostListFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// GetFlaggedPostsForUserInChannel returns flagged posts in channel of a user based on user id string.
+func (c *Client4) GetFlaggedPostsForUserInChannel(userId string, channelId string, page int, perPage int) (*PostList, *Response) {
+ if len(channelId) == 0 || len(channelId) != 26 {
+ return nil, &Response{StatusCode: http.StatusBadRequest, Error: NewAppError("GetFlaggedPostsForUserInChannel", "model.client.get_flagged_posts_in_channel.missing_parameter.app_error", nil, "", http.StatusBadRequest)}
+ }
+
+ query := fmt.Sprintf("?in_channel=%v&page=%v&per_page=%v", channelId, page, perPage)
+ if r, err := c.DoApiGet(c.GetUserRoute(userId)+"/posts/flagged"+query, ""); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return PostListFromJson(r.Body), BuildResponse(r)
+ }
+}
+
// GetPostsSince gets posts created after a specified time as Unix time in milliseconds.
func (c *Client4) GetPostsSince(channelId string, time int64) (*PostList, *Response) {
query := fmt.Sprintf("?since=%v", time)
@@ -2124,6 +2219,26 @@ func (c *Client4) CreateCommand(cmd *Command) (*Command, *Response) {
}
}
+// UpdateCommand updates a command based on the provided Command struct
+func (c *Client4) UpdateCommand(cmd *Command) (*Command, *Response) {
+ if r, err := c.DoApiPut(c.GetCommandRoute(cmd.Id), cmd.ToJson()); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return CommandFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// DeleteCommand deletes a command based on the provided command id string
+func (c *Client4) DeleteCommand(commandId string) (bool, *Response) {
+ if r, err := c.DoApiDelete(c.GetCommandRoute(commandId)); err != nil {
+ return false, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return CheckStatusOK(r), BuildResponse(r)
+ }
+}
+
// ListCommands will retrieve a list of commands available in the team.
func (c *Client4) ListCommands(teamId string, customOnly bool) ([]*Command, *Response) {
query := fmt.Sprintf("?team_id=%v&custom_only=%v", teamId, customOnly)
@@ -2145,6 +2260,16 @@ func (c *Client4) ListAutocompleteCommands(teamId string) ([]*Command, *Response
}
}
+// RegenCommandToken will create a new token if the user have the right permissions.
+func (c *Client4) RegenCommandToken(commandId string) (string, *Response) {
+ if r, err := c.DoApiPut(c.GetCommandRoute(commandId)+"/regen_token", ""); err != nil {
+ return "", &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return MapFromJson(r.Body)["token"], BuildResponse(r)
+ }
+}
+
// Status Section
// GetUserStatus returns a user based on the provided user id string.
@@ -2177,3 +2302,84 @@ func (c *Client4) UpdateUserStatus(userId string, userStatus *Status) (*Status,
}
}
+
+// Webrtc Section
+
+// GetWebrtcToken returns a valid token, stun server and turn server with credentials to
+// use with the Mattermost WebRTC service.
+func (c *Client4) GetWebrtcToken() (*WebrtcInfoResponse, *Response) {
+ if r, err := c.DoApiGet("/webrtc/token", ""); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return WebrtcInfoResponseFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// Emoji Section
+
+// CreateEmoji will save an emoji to the server if the current user has permission
+// to do so. If successful, the provided emoji will be returned with its Id field
+// filled in. Otherwise, an error will be returned.
+func (c *Client4) CreateEmoji(emoji *Emoji, image []byte, filename string) (*Emoji, *Response) {
+ body := &bytes.Buffer{}
+ writer := multipart.NewWriter(body)
+
+ if part, err := writer.CreateFormFile("image", filename); err != nil {
+ return nil, &Response{StatusCode: http.StatusForbidden, Error: NewLocAppError("CreateEmoji", "model.client.create_emoji.image.app_error", nil, err.Error())}
+ } else if _, err = io.Copy(part, bytes.NewBuffer(image)); err != nil {
+ return nil, &Response{StatusCode: http.StatusForbidden, Error: NewLocAppError("CreateEmoji", "model.client.create_emoji.image.app_error", nil, err.Error())}
+ }
+
+ if err := writer.WriteField("emoji", emoji.ToJson()); err != nil {
+ return nil, &Response{StatusCode: http.StatusForbidden, Error: NewLocAppError("CreateEmoji", "model.client.create_emoji.emoji.app_error", nil, err.Error())}
+ }
+
+ if err := writer.Close(); err != nil {
+ return nil, &Response{StatusCode: http.StatusForbidden, Error: NewLocAppError("CreateEmoji", "model.client.create_emoji.writer.app_error", nil, err.Error())}
+ }
+
+ return c.DoEmojiUploadFile(c.GetEmojisRoute(), body.Bytes(), writer.FormDataContentType())
+}
+
+// GetEmojiList returns a list of custom emoji in the system.
+func (c *Client4) GetEmojiList() ([]*Emoji, *Response) {
+ if r, err := c.DoApiGet(c.GetEmojisRoute(), ""); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return EmojiListFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// DeleteEmoji delete an custom emoji on the provided emoji id string.
+func (c *Client4) DeleteEmoji(emojiId string) (bool, *Response) {
+ if r, err := c.DoApiDelete(c.GetEmojiRoute(emojiId)); err != nil {
+ return false, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return CheckStatusOK(r), BuildResponse(r)
+ }
+}
+
+// GetEmoji returns a custom emoji in the system on the provided emoji id string.
+func (c *Client4) GetEmoji(emojiId string) (*Emoji, *Response) {
+ if r, err := c.DoApiGet(c.GetEmojiRoute(emojiId), ""); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return EmojiFromJson(r.Body), BuildResponse(r)
+ }
+}
+
+// Reaction Section
+
+// GetReactions returns a list of reactions to a post.
+func (c *Client4) GetReactions(postId string) ([]*Reaction, *Response) {
+ if r, err := c.DoApiGet(c.GetPostRoute(postId)+"/reactions", ""); err != nil {
+ return nil, &Response{StatusCode: r.StatusCode, Error: err}
+ } else {
+ defer closeBody(r)
+ return ReactionsFromJson(r.Body), BuildResponse(r)
+ }
+}
diff --git a/model/cluster_info.go b/model/cluster_info.go
index 0e4b1e365..f76a03c0b 100644
--- a/model/cluster_info.go
+++ b/model/cluster_info.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/cluster_info_test.go b/model/cluster_info_test.go
index e7aa9cd16..038927120 100644
--- a/model/cluster_info_test.go
+++ b/model/cluster_info_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/cluster_stats.go b/model/cluster_stats.go
index f2efa323e..879487c6e 100644
--- a/model/cluster_stats.go
+++ b/model/cluster_stats.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/cluster_stats_test.go b/model/cluster_stats_test.go
index 13920b5d1..82bacf526 100644
--- a/model/cluster_stats_test.go
+++ b/model/cluster_stats_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/command.go b/model/command.go
index decb647b7..47378bbec 100644
--- a/model/command.go
+++ b/model/command.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/command_args.go b/model/command_args.go
index f512410a3..76b03a2fa 100644
--- a/model/command_args.go
+++ b/model/command_args.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/command_response.go b/model/command_response.go
index f69772353..1b2e06cdf 100644
--- a/model/command_response.go
+++ b/model/command_response.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/command_response_test.go b/model/command_response_test.go
index 131d87789..b57a77608 100644
--- a/model/command_response_test.go
+++ b/model/command_response_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/command_test.go b/model/command_test.go
index 2376e2ef7..53c15f74a 100644
--- a/model/command_test.go
+++ b/model/command_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/compliance.go b/model/compliance.go
index 4a96a597a..14f8f4a5e 100644
--- a/model/compliance.go
+++ b/model/compliance.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/compliance_post.go b/model/compliance_post.go
index 027e534b7..f39fea2f5 100644
--- a/model/compliance_post.go
+++ b/model/compliance_post.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/compliance_post_test.go b/model/compliance_post_test.go
index 49f41a121..4866b2494 100644
--- a/model/compliance_post_test.go
+++ b/model/compliance_post_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/compliance_test.go b/model/compliance_test.go
index 6acc5a882..32ce48db5 100644
--- a/model/compliance_test.go
+++ b/model/compliance_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/config.go b/model/config.go
index 10d44a0ca..303d7bb75 100644
--- a/model/config.go
+++ b/model/config.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
@@ -151,6 +151,7 @@ type ServiceSettings struct {
AllowEditPost *string
PostEditTimeLimit *int
TimeBetweenUserTypingUpdatesMilliseconds *int64
+ EnablePostSearch *bool
EnableUserTypingMessages *bool
ClusterLogTimeoutMilliseconds *int
}
@@ -1148,6 +1149,11 @@ func (o *Config) SetDefaults() {
*o.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds = 5000
}
+ if o.ServiceSettings.EnablePostSearch == nil {
+ o.ServiceSettings.EnablePostSearch = new(bool)
+ *o.ServiceSettings.EnablePostSearch = true
+ }
+
if o.ServiceSettings.EnableUserTypingMessages == nil {
o.ServiceSettings.EnableUserTypingMessages = new(bool)
*o.ServiceSettings.EnableUserTypingMessages = true
diff --git a/model/emoji.go b/model/emoji.go
index a66053aa0..7f2792777 100644
--- a/model/emoji.go
+++ b/model/emoji.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/emoji_test.go b/model/emoji_test.go
index cd6344ca5..81de50c6b 100644
--- a/model/emoji_test.go
+++ b/model/emoji_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/file.go b/model/file.go
index 20f6236de..f92581469 100644
--- a/model/file.go
+++ b/model/file.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/file_info.go b/model/file_info.go
index 687473d4f..8b5684127 100644
--- a/model/file_info.go
+++ b/model/file_info.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/file_info_test.go b/model/file_info_test.go
index d3671f252..f87dd4640 100644
--- a/model/file_info_test.go
+++ b/model/file_info_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/gitlab.go b/model/gitlab.go
index 3dfb1016a..8777614c1 100644
--- a/model/gitlab.go
+++ b/model/gitlab.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/gitlab/gitlab.go b/model/gitlab/gitlab.go
index 270d62d8b..7f1447edd 100644
--- a/model/gitlab/gitlab.go
+++ b/model/gitlab/gitlab.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package oauthgitlab
diff --git a/model/incoming_webhook.go b/model/incoming_webhook.go
index 2cc26cbca..2235cb2c6 100644
--- a/model/incoming_webhook.go
+++ b/model/incoming_webhook.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/incoming_webhook_test.go b/model/incoming_webhook_test.go
index 46e5b6743..f6baca988 100644
--- a/model/incoming_webhook_test.go
+++ b/model/incoming_webhook_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/initial_load.go b/model/initial_load.go
index afb0a2762..71ba17696 100644
--- a/model/initial_load.go
+++ b/model/initial_load.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/initial_load_test.go b/model/initial_load_test.go
index 24a07e412..ecae7ac88 100644
--- a/model/initial_load_test.go
+++ b/model/initial_load_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/job.go b/model/job.go
index a139b154c..453828bd2 100644
--- a/model/job.go
+++ b/model/job.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/job_test.go b/model/job_test.go
index 8908fed58..6ba8edaf9 100644
--- a/model/job_test.go
+++ b/model/job_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/ldap.go b/model/ldap.go
index 71b1d8a6b..1453a4add 100644
--- a/model/ldap.go
+++ b/model/ldap.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/license.go b/model/license.go
index 09da61eb7..57c49d3d8 100644
--- a/model/license.go
+++ b/model/license.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/license_test.go b/model/license_test.go
index 25c74a2e3..94a6ad130 100644
--- a/model/license_test.go
+++ b/model/license_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/mfa_secret.go b/model/mfa_secret.go
index 717681b3d..99580f5f3 100644
--- a/model/mfa_secret.go
+++ b/model/mfa_secret.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/mfa_secret_test.go b/model/mfa_secret_test.go
index c062e7311..e61359310 100644
--- a/model/mfa_secret_test.go
+++ b/model/mfa_secret_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/oauth.go b/model/oauth.go
index cfe643c9a..a8aca0ca0 100644
--- a/model/oauth.go
+++ b/model/oauth.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/oauth_test.go b/model/oauth_test.go
index e1f88a993..5c0547717 100644
--- a/model/oauth_test.go
+++ b/model/oauth_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/outgoing_webhook.go b/model/outgoing_webhook.go
index ec2ed75c7..3cfed9e74 100644
--- a/model/outgoing_webhook.go
+++ b/model/outgoing_webhook.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/outgoing_webhook_test.go b/model/outgoing_webhook_test.go
index 2458c62e4..725423cdf 100644
--- a/model/outgoing_webhook_test.go
+++ b/model/outgoing_webhook_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/password_recovery.go b/model/password_recovery.go
index 303d4a12e..8af046642 100644
--- a/model/password_recovery.go
+++ b/model/password_recovery.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/post.go b/model/post.go
index 0d9651924..f5a398656 100644
--- a/model/post.go
+++ b/model/post.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/post_list.go b/model/post_list.go
index 9b56f0233..63f6d6825 100644
--- a/model/post_list.go
+++ b/model/post_list.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/post_list_test.go b/model/post_list_test.go
index 9ce6447e1..56886d4fd 100644
--- a/model/post_list_test.go
+++ b/model/post_list_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/post_test.go b/model/post_test.go
index cbd323fab..1096ccbd8 100644
--- a/model/post_test.go
+++ b/model/post_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/preference.go b/model/preference.go
index 94807d2c9..4d534b17b 100644
--- a/model/preference.go
+++ b/model/preference.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/preference_test.go b/model/preference_test.go
index df7fe612d..c56d46e2c 100644
--- a/model/preference_test.go
+++ b/model/preference_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/preferences.go b/model/preferences.go
index f11b5fd80..b982e309d 100644
--- a/model/preferences.go
+++ b/model/preferences.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/push_notification.go b/model/push_notification.go
index 753495b2f..49d4043eb 100644
--- a/model/push_notification.go
+++ b/model/push_notification.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/push_notification_test.go b/model/push_notification_test.go
index e8b2fa2d4..a6e158105 100644
--- a/model/push_notification_test.go
+++ b/model/push_notification_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/push_response.go b/model/push_response.go
index 0271bc94b..095986f3e 100644
--- a/model/push_response.go
+++ b/model/push_response.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/reaction.go b/model/reaction.go
index afbdd1e88..4a02df8cb 100644
--- a/model/reaction.go
+++ b/model/reaction.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/reaction_test.go b/model/reaction_test.go
index da73f477a..e980b106d 100644
--- a/model/reaction_test.go
+++ b/model/reaction_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/saml.go b/model/saml.go
index 1371c433f..f5826a95d 100644
--- a/model/saml.go
+++ b/model/saml.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/saml_test.go b/model/saml_test.go
index 578e78da5..d7745bd6b 100644
--- a/model/saml_test.go
+++ b/model/saml_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/search_params.go b/model/search_params.go
index bc604317e..070ac6d24 100644
--- a/model/search_params.go
+++ b/model/search_params.go
@@ -1,9 +1,10 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
import (
+ "encoding/json"
"regexp"
"strings"
)
@@ -19,6 +20,15 @@ type SearchParams struct {
OrTerms bool
}
+func (o *SearchParams) ToJson() string {
+ b, err := json.Marshal(o)
+ if err != nil {
+ return ""
+ } else {
+ return string(b)
+ }
+}
+
var searchFlags = [...]string{"from", "channel", "in"}
func splitWordsNoQuotes(text string) []string {
diff --git a/model/search_params_test.go b/model/search_params_test.go
index 7138d82c4..0e55c7ead 100644
--- a/model/search_params_test.go
+++ b/model/search_params_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/security_bulletin.go b/model/security_bulletin.go
index 8d9be6d3b..b8c1dc48d 100644
--- a/model/security_bulletin.go
+++ b/model/security_bulletin.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/session.go b/model/session.go
index 277e910f6..90cebe59d 100644
--- a/model/session.go
+++ b/model/session.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/session_test.go b/model/session_test.go
index 4cffcb9c0..295f00076 100644
--- a/model/session_test.go
+++ b/model/session_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/slack_attachment.go b/model/slack_attachment.go
index e1639f2af..6fd0071b4 100644
--- a/model/slack_attachment.go
+++ b/model/slack_attachment.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/status.go b/model/status.go
index 59115b42d..d838eea01 100644
--- a/model/status.go
+++ b/model/status.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/status_test.go b/model/status_test.go
index cb1720fd2..7730ff0ed 100644
--- a/model/status_test.go
+++ b/model/status_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/suggest_command.go b/model/suggest_command.go
index 7bc35369c..3d066499a 100644
--- a/model/suggest_command.go
+++ b/model/suggest_command.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/suggest_command_test.go b/model/suggest_command_test.go
index 6be700859..96f49e301 100644
--- a/model/suggest_command_test.go
+++ b/model/suggest_command_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/switch_request.go b/model/switch_request.go
new file mode 100644
index 000000000..964f47a90
--- /dev/null
+++ b/model/switch_request.go
@@ -0,0 +1,62 @@
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package model
+
+import (
+ "encoding/json"
+ "io"
+)
+
+type SwitchRequest struct {
+ CurrentService string `json:"current_service"`
+ NewService string `json:"new_service"`
+ Email string `json:"email"`
+ Password string `json:"current_password"`
+ NewPassword string `json:"new_password"`
+ MfaCode string `json:"mfa_code"`
+ LdapId string `json:"ldap_id"`
+}
+
+func (o *SwitchRequest) ToJson() string {
+ b, err := json.Marshal(o)
+ if err != nil {
+ return ""
+ } else {
+ return string(b)
+ }
+}
+
+func SwitchRequestFromJson(data io.Reader) *SwitchRequest {
+ decoder := json.NewDecoder(data)
+ var o SwitchRequest
+ err := decoder.Decode(&o)
+ if err == nil {
+ return &o
+ } else {
+ return nil
+ }
+}
+
+func (o *SwitchRequest) EmailToOAuth() bool {
+ return o.CurrentService == USER_AUTH_SERVICE_EMAIL &&
+ (o.NewService == USER_AUTH_SERVICE_SAML ||
+ o.NewService == USER_AUTH_SERVICE_GITLAB ||
+ o.NewService == SERVICE_GOOGLE ||
+ o.NewService == SERVICE_OFFICE365)
+}
+
+func (o *SwitchRequest) OAuthToEmail() bool {
+ return (o.CurrentService == USER_AUTH_SERVICE_SAML ||
+ o.CurrentService == USER_AUTH_SERVICE_GITLAB ||
+ o.CurrentService == SERVICE_GOOGLE ||
+ o.CurrentService == SERVICE_OFFICE365) && o.NewService == USER_AUTH_SERVICE_EMAIL
+}
+
+func (o *SwitchRequest) EmailToLdap() bool {
+ return o.CurrentService == USER_AUTH_SERVICE_EMAIL && o.NewService == USER_AUTH_SERVICE_LDAP
+}
+
+func (o *SwitchRequest) LdapToEmail() bool {
+ return o.CurrentService == USER_AUTH_SERVICE_LDAP && o.NewService == USER_AUTH_SERVICE_EMAIL
+}
diff --git a/model/switch_request_test.go b/model/switch_request_test.go
new file mode 100644
index 000000000..49302fba6
--- /dev/null
+++ b/model/switch_request_test.go
@@ -0,0 +1,19 @@
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package model
+
+import (
+ "strings"
+ "testing"
+)
+
+func TestSwitchRequestJson(t *testing.T) {
+ o := SwitchRequest{Email: NewId(), Password: NewId()}
+ json := o.ToJson()
+ ro := SwitchRequestFromJson(strings.NewReader(json))
+
+ if o.Email != ro.Email {
+ t.Fatal("Emails do not match")
+ }
+}
diff --git a/model/system.go b/model/system.go
index 68d542c15..e2f4283a4 100644
--- a/model/system.go
+++ b/model/system.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/system_test.go b/model/system_test.go
index 3f60eb5f9..bf167a6cc 100644
--- a/model/system_test.go
+++ b/model/system_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/team.go b/model/team.go
index 458f71e95..74d371ac2 100644
--- a/model/team.go
+++ b/model/team.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/team_member.go b/model/team_member.go
index efd77e7ec..3a0befa31 100644
--- a/model/team_member.go
+++ b/model/team_member.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/team_member_test.go b/model/team_member_test.go
index e957ffd4f..3661fff4b 100644
--- a/model/team_member_test.go
+++ b/model/team_member_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/team_search.go b/model/team_search.go
index 4ab30f96b..e0676022d 100644
--- a/model/team_search.go
+++ b/model/team_search.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/team_search_test.go b/model/team_search_test.go
index 996adad43..0f118c9ec 100644
--- a/model/team_search_test.go
+++ b/model/team_search_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/team_stats.go b/model/team_stats.go
index 9042e76d6..e94ed37bc 100644
--- a/model/team_stats.go
+++ b/model/team_stats.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/team_test.go b/model/team_test.go
index d471bbf49..60ba92f99 100644
--- a/model/team_test.go
+++ b/model/team_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/user.go b/model/user.go
index 5cefdf1b1..2c2ba734b 100644
--- a/model/user.go
+++ b/model/user.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
@@ -26,13 +26,12 @@ const (
PUSH_NOTIFY_PROP = "push"
EMAIL_NOTIFY_PROP = "email"
- DEFAULT_LOCALE = "en"
- USER_AUTH_SERVICE_EMAIL = "email"
- USER_AUTH_SERVICE_USERNAME = "username"
+ DEFAULT_LOCALE = "en"
+ USER_AUTH_SERVICE_EMAIL = "email"
USER_EMAIL_MAX_LENGTH = 128
USER_NICKNAME_MAX_RUNES = 64
- USER_POSITION_MAX_RUNES = 35
+ USER_POSITION_MAX_RUNES = 64
USER_FIRST_NAME_MAX_RUNES = 64
USER_LAST_NAME_MAX_RUNES = 64
USER_AUTH_DATA_MAX_LENGTH = 128
@@ -85,56 +84,65 @@ type UserPatch struct {
func (u *User) IsValid() *AppError {
if len(u.Id) != 26 {
- return NewAppError("User.IsValid", "model.user.is_valid.id.app_error", nil, "", http.StatusBadRequest)
+ return InvalidUserError("id", "")
}
if u.CreateAt == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.create_at.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("create_at", u.Id)
}
if u.UpdateAt == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.update_at.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("update_at", u.Id)
}
if !IsValidUsername(u.Username) {
- return NewAppError("User.IsValid", "model.user.is_valid.username.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("username", u.Id)
}
if len(u.Email) > USER_EMAIL_MAX_LENGTH || len(u.Email) == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.email.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("email", u.Id)
}
if utf8.RuneCountInString(u.Nickname) > USER_NICKNAME_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.nickname.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("nickname", u.Id)
}
if utf8.RuneCountInString(u.Position) > USER_POSITION_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.position.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("position", u.Id)
}
if utf8.RuneCountInString(u.FirstName) > USER_FIRST_NAME_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.first_name.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("first_name", u.Id)
}
if utf8.RuneCountInString(u.LastName) > USER_LAST_NAME_MAX_RUNES {
- return NewAppError("User.IsValid", "model.user.is_valid.last_name.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("last_name", u.Id)
}
if u.AuthData != nil && len(*u.AuthData) > USER_AUTH_DATA_MAX_LENGTH {
- return NewAppError("User.IsValid", "model.user.is_valid.auth_data.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("auth_data", u.Id)
}
if u.AuthData != nil && len(*u.AuthData) > 0 && len(u.AuthService) == 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.auth_data_type.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("auth_data_type", u.Id)
}
if len(u.Password) > 0 && u.AuthData != nil && len(*u.AuthData) > 0 {
- return NewAppError("User.IsValid", "model.user.is_valid.auth_data_pwd.app_error", nil, "user_id="+u.Id, http.StatusBadRequest)
+ return InvalidUserError("auth_data_pwd", u.Id)
}
return nil
}
+func InvalidUserError(fieldName string, userId string) *AppError {
+ id := fmt.Sprintf("model.user.is_valid.%s.app_error", fieldName)
+ details := ""
+ if userId != "" {
+ details = "user_id=" + userId
+ }
+ return NewAppError("User.IsValid", id, nil, details, http.StatusBadRequest)
+}
+
// PreSave will set the Id and Username if missing. It will also fill
// in the CreateAt, UpdateAt times. It will also hash the password. It should
// be run before saving the user to the db.
diff --git a/model/user_autocomplete.go b/model/user_autocomplete.go
index b80c6f992..43c030b8e 100644
--- a/model/user_autocomplete.go
+++ b/model/user_autocomplete.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/user_search.go b/model/user_search.go
index 8d6a5c567..6213b16e4 100644
--- a/model/user_search.go
+++ b/model/user_search.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/user_search_test.go b/model/user_search_test.go
index b2543ffdb..0fada7781 100644
--- a/model/user_search_test.go
+++ b/model/user_search_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/user_test.go b/model/user_test.go
index 47ec38dbf..3eb931f5d 100644
--- a/model/user_test.go
+++ b/model/user_test.go
@@ -1,9 +1,11 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
import (
+ "fmt"
+ "net/http"
"strings"
"testing"
)
@@ -71,43 +73,43 @@ func TestUserUpdateMentionKeysFromUsername(t *testing.T) {
func TestUserIsValid(t *testing.T) {
user := User{}
- if err := user.IsValid(); err == nil {
- t.Fatal()
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "id", "") {
+ t.Fatal(err)
}
user.Id = NewId()
- if err := user.IsValid(); err == nil {
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "create_at", user.Id) {
t.Fatal()
}
user.CreateAt = GetMillis()
- if err := user.IsValid(); err == nil {
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "update_at", user.Id) {
t.Fatal()
}
user.UpdateAt = GetMillis()
- if err := user.IsValid(); err == nil {
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "username", user.Id) {
t.Fatal()
}
user.Username = NewId() + "^hello#"
- if err := user.IsValid(); err == nil {
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "username", user.Id) {
t.Fatal()
}
user.Username = "n" + NewId()
- user.Email = strings.Repeat("01234567890", 20)
- if err := user.IsValid(); err == nil {
+ user.Email = strings.Repeat("a", 129)
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "email", user.Id) {
t.Fatal()
}
- user.Email = "test@nowhere.com"
- user.Nickname = strings.Repeat("01234567890", 20)
- if err := user.IsValid(); err == nil {
+ user.Email = strings.Repeat("a", 128)
+ user.Nickname = strings.Repeat("a", 65)
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "nickname", user.Id) {
t.Fatal()
}
- user.Nickname = ""
+ user.Nickname = strings.Repeat("a", 64)
if err := user.IsValid(); err != nil {
t.Fatal(err)
}
@@ -118,29 +120,40 @@ func TestUserIsValid(t *testing.T) {
t.Fatal(err)
}
- user.FirstName = strings.Repeat("01234567890", 20)
- if err := user.IsValid(); err == nil {
+ user.FirstName = strings.Repeat("a", 65)
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "first_name", user.Id) {
t.Fatal(err)
}
- user.FirstName = ""
- user.LastName = strings.Repeat("01234567890", 20)
- if err := user.IsValid(); err == nil {
+ user.FirstName = strings.Repeat("a", 64)
+ user.LastName = strings.Repeat("a", 65)
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "last_name", user.Id) {
t.Fatal(err)
}
- user.LastName = ""
- user.Position = ""
+ user.LastName = strings.Repeat("a", 64)
+ user.Position = strings.Repeat("a", 64)
if err := user.IsValid(); err != nil {
t.Fatal(err)
}
- user.Position = strings.Repeat("01234567890", 20)
- if err := user.IsValid(); err == nil {
+ user.Position = strings.Repeat("a", 65)
+ if err := user.IsValid(); !HasExpectedUserIsValidError(err, "position", user.Id) {
t.Fatal(err)
}
}
+func HasExpectedUserIsValidError(err *AppError, fieldName string, userId string) bool {
+ if err == nil {
+ return false
+ }
+
+ return err.Where == "User.IsValid" &&
+ err.Id == fmt.Sprintf("model.user.is_valid.%s.app_error", fieldName) &&
+ err.StatusCode == http.StatusBadRequest &&
+ (userId == "" || err.DetailedError == "user_id="+userId)
+}
+
func TestUserGetFullName(t *testing.T) {
user := User{}
diff --git a/model/utils.go b/model/utils.go
index 8ae45b140..6d8fafeea 100644
--- a/model/utils.go
+++ b/model/utils.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/utils_test.go b/model/utils_test.go
index 7c6100a04..e77ce80fb 100644
--- a/model/utils_test.go
+++ b/model/utils_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/version.go b/model/version.go
index 4eabf391f..01c243df7 100644
--- a/model/version.go
+++ b/model/version.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/version_test.go b/model/version_test.go
index e0346c43a..869ed8ad0 100644
--- a/model/version_test.go
+++ b/model/version_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/webrtc.go b/model/webrtc.go
index e746d62a8..fa15a4b71 100644
--- a/model/webrtc.go
+++ b/model/webrtc.go
@@ -1,3 +1,6 @@
+// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
package model
import (
@@ -5,6 +8,15 @@ import (
"io"
)
+type WebrtcInfoResponse struct {
+ Token string `json:"token"`
+ GatewayUrl string `json:"gateway_url"`
+ 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 {
Status string `json:"janus"`
}
@@ -19,3 +31,23 @@ func GatewayResponseFromJson(data io.Reader) *GatewayResponse {
return nil
}
}
+
+func (o *WebrtcInfoResponse) ToJson() string {
+ b, err := json.Marshal(o)
+ if err != nil {
+ return ""
+ } else {
+ return string(b)
+ }
+}
+
+func WebrtcInfoResponseFromJson(data io.Reader) *WebrtcInfoResponse {
+ decoder := json.NewDecoder(data)
+ var o WebrtcInfoResponse
+ err := decoder.Decode(&o)
+ if err == nil {
+ return &o
+ } else {
+ return nil
+ }
+}
diff --git a/model/webrtc_test.go b/model/webrtc_test.go
new file mode 100644
index 000000000..2418bd53a
--- /dev/null
+++ b/model/webrtc_test.go
@@ -0,0 +1,19 @@
+// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package model
+
+import (
+ "strings"
+ "testing"
+)
+
+func TestWebrtcJson(t *testing.T) {
+ o := WebrtcInfoResponse{Token: NewId(), GatewayUrl: NewId()}
+ json := o.ToJson()
+ ro := WebrtcInfoResponseFromJson(strings.NewReader(json))
+
+ if o.Token != ro.Token {
+ t.Fatal("Tokens do not match")
+ }
+}
diff --git a/model/websocket_client.go b/model/websocket_client.go
index 2da83be56..2fa405f31 100644
--- a/model/websocket_client.go
+++ b/model/websocket_client.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/websocket_message.go b/model/websocket_message.go
index c364f2613..0ed056cfe 100644
--- a/model/websocket_message.go
+++ b/model/websocket_message.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/websocket_message_test.go b/model/websocket_message_test.go
index dceb37eef..1b75d0f6e 100644
--- a/model/websocket_message_test.go
+++ b/model/websocket_message_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/websocket_request.go b/model/websocket_request.go
index d0f35f68b..7dc0b4335 100644
--- a/model/websocket_request.go
+++ b/model/websocket_request.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
diff --git a/model/websocket_request_test.go b/model/websocket_request_test.go
index 52de82069..0918fb714 100644
--- a/model/websocket_request_test.go
+++ b/model/websocket_request_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model