summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-01-17 20:45:18 +0000
committerChristopher Speller <crspeller@gmail.com>2017-01-17 15:45:18 -0500
commit0685afd1d197584e78a111934754d7111bb2dbe8 (patch)
treeed4b3ac931a027767392af4d1d1d88e13058d4a6 /api
parentcdf91d8ee8d0cdd03b506f06d6c01d5aeed92e74 (diff)
downloadchat-0685afd1d197584e78a111934754d7111bb2dbe8.tar.gz
chat-0685afd1d197584e78a111934754d7111bb2dbe8.tar.bz2
chat-0685afd1d197584e78a111934754d7111bb2dbe8.zip
PLT-2978: Add channel purpose change system message. (#5094)
Completes original patch by David Lu.
Diffstat (limited to 'api')
-rw-r--r--api/channel.go5
-rw-r--r--api/channel_test.go11
2 files changed, 16 insertions, 0 deletions
diff --git a/api/channel.go b/api/channel.go
index 590409921..b8b73bf38 100644
--- a/api/channel.go
+++ b/api/channel.go
@@ -262,6 +262,7 @@ func updateChannelHeader(c *Context, w http.ResponseWriter, r *http.Request) {
}
func updateChannelPurpose(c *Context, w http.ResponseWriter, r *http.Request) {
+
props := model.MapFromJson(r.Body)
channelId := props["channel_id"]
if len(channelId) != 26 {
@@ -292,6 +293,7 @@ func updateChannelPurpose(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
+ oldChannelPurpose := channel.Purpose
channel.Purpose = channelPurpose
app.InvalidateCacheForChannel(channel.Id)
@@ -299,6 +301,9 @@ func updateChannelPurpose(c *Context, w http.ResponseWriter, r *http.Request) {
c.Err = ucresult.Err
return
} else {
+ if err := app.PostUpdateChannelPurposeMessage(c.Session.UserId, channel.Id, c.TeamId, oldChannelPurpose, channelPurpose); err != nil {
+ l4g.Error(err.Error())
+ }
c.LogAudit("name=" + channel.Name)
w.Write([]byte(channel.ToJson()))
}
diff --git a/api/channel_test.go b/api/channel_test.go
index 1bce8b9fd..119578e8b 100644
--- a/api/channel_test.go
+++ b/api/channel_test.go
@@ -630,6 +630,17 @@ func TestUpdateChannelPurpose(t *testing.T) {
upChannel1 = result.Data.(*model.Channel)
}
+ time.Sleep(100 * time.Millisecond)
+
+ r1 := Client.Must(Client.GetPosts(channel1.Id, 0, 1, "")).Data.(*model.PostList)
+ if len(r1.Order) != 1 {
+ t.Fatal("Purpose update system message was not found")
+ } else if val, ok := r1.Posts[r1.Order[0]].Props["old_purpose"]; !ok || val != "" {
+ t.Fatal("Props should contain old_header with old purpose value")
+ } else if val, ok := r1.Posts[r1.Order[0]].Props["new_purpose"]; !ok || val != "new purpose" {
+ t.Fatal("Props should contain new_header with new purpose value")
+ }
+
if upChannel1.Purpose != data["channel_purpose"] {
t.Fatal("Failed to update purpose")
}