diff options
author | George Goldberg <george@gberg.me> | 2017-01-17 20:45:18 +0000 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-01-17 15:45:18 -0500 |
commit | 0685afd1d197584e78a111934754d7111bb2dbe8 (patch) | |
tree | ed4b3ac931a027767392af4d1d1d88e13058d4a6 /app/channel.go | |
parent | cdf91d8ee8d0cdd03b506f06d6c01d5aeed92e74 (diff) | |
download | chat-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 'app/channel.go')
-rw-r--r-- | app/channel.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/channel.go b/app/channel.go index 9451ca974..aa84e12be 100644 --- a/app/channel.go +++ b/app/channel.go @@ -316,6 +316,41 @@ func PostUpdateChannelHeaderMessage(userId string, channelId string, teamId stri return nil } +func PostUpdateChannelPurposeMessage(userId string, channelId string, teamId string, oldChannelPurpose string, newChannelPurpose string) *model.AppError { + uc := Srv.Store.User().Get(userId) + + if uresult := <-uc; uresult.Err != nil { + return model.NewLocAppError("PostUpdateChannelPurposeMessage", "app.channel.post_update_channel_purpose_message.retrieve_user.error", nil, uresult.Err.Error()) + } else { + user := uresult.Data.(*model.User) + + var message string + if oldChannelPurpose == "" { + message = fmt.Sprintf(utils.T("app.channel.post_update_channel_purpose_message.updated_to"), user.Username, newChannelPurpose) + } else if newChannelPurpose == "" { + message = fmt.Sprintf(utils.T("app.channel.post_update_channel_purpose_message.removed"), user.Username, oldChannelPurpose) + } else { + message = fmt.Sprintf(utils.T("app.channel.post_update_channel_purpose_message.updated_from"), user.Username, oldChannelPurpose, newChannelPurpose) + } + + post := &model.Post{ + ChannelId: channelId, + Message: message, + Type: model.POST_PURPOSE_CHANGE, + UserId: userId, + Props: model.StringInterface{ + "old_purpose": oldChannelPurpose, + "new_purpose": newChannelPurpose, + }, + } + if _, err := CreatePost(post, teamId, false); err != nil { + return model.NewLocAppError("", "app.channel.post_update_channel_purpose_message.post.error", nil, err.Error()) + } + } + + return nil +} + func PostUpdateChannelDisplayNameMessage(userId string, channelId string, teamId string, oldChannelDisplayName, newChannelDisplayName string) *model.AppError { uc := Srv.Store.User().Get(userId) |