summaryrefslogtreecommitdiffstats
path: root/api4
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-09-06 22:41:19 +0100
committerCarlos Tadeu Panato Junior <ctadeu@gmail.com>2018-09-06 23:41:19 +0200
commit72258266aa4556557262bb517918ba2194bd7edb (patch)
tree5826150ed8f3c54dc50301e01dab6961cf68f5b9 /api4
parentd2190527eafdae31e14ba0832dcfb79a0a1e223b (diff)
downloadchat-72258266aa4556557262bb517918ba2194bd7edb.tar.gz
chat-72258266aa4556557262bb517918ba2194bd7edb.tar.bz2
chat-72258266aa4556557262bb517918ba2194bd7edb.zip
MM-11649: Fix caching issue in channel API endpoints. (#9345)
This fixes an issue where the cached Channel objects would contain data from a failed update when the update to the database failed.
Diffstat (limited to 'api4')
-rw-r--r--api4/channel.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/api4/channel.go b/api4/channel.go
index 1599b6e70..d497c9793 100644
--- a/api4/channel.go
+++ b/api4/channel.go
@@ -97,10 +97,11 @@ func updateChannel(c *Context, w http.ResponseWriter, r *http.Request) {
}
var oldChannel *model.Channel
- var err *model.AppError
- if oldChannel, err = c.App.GetChannel(channel.Id); err != nil {
+ if originalOldChannel, err := c.App.GetChannel(channel.Id); err != nil {
c.Err = err
return
+ } else {
+ oldChannel = originalOldChannel.DeepCopy()
}
switch oldChannel.Type {
@@ -229,10 +230,12 @@ func patchChannel(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- oldChannel, err := c.App.GetChannel(c.Params.ChannelId)
- if err != nil {
+ var oldChannel *model.Channel
+ if originalOldChannel, err := c.App.GetChannel(c.Params.ChannelId); err != nil {
c.Err = err
return
+ } else {
+ oldChannel = originalOldChannel.DeepCopy()
}
switch oldChannel.Type {