diff options
author | George Goldberg <george@gberg.me> | 2018-09-06 22:41:19 +0100 |
---|---|---|
committer | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2018-09-06 23:41:19 +0200 |
commit | 72258266aa4556557262bb517918ba2194bd7edb (patch) | |
tree | 5826150ed8f3c54dc50301e01dab6961cf68f5b9 /api4/channel.go | |
parent | d2190527eafdae31e14ba0832dcfb79a0a1e223b (diff) | |
download | chat-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/channel.go')
-rw-r--r-- | api4/channel.go | 11 |
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 { |