diff options
author | Christopher Speller <crspeller@gmail.com> | 2015-07-30 08:24:06 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2015-07-30 08:24:06 -0400 |
commit | c7a8112c172a55741e1dcbf366ed637543c301ce (patch) | |
tree | 74cfe4c266d3ba88430f80968cb5995b408cbd0a | |
parent | 3f97e06bf80c789ce8e2d572afdac65a73d417c8 (diff) | |
download | chat-c7a8112c172a55741e1dcbf366ed637543c301ce.tar.gz chat-c7a8112c172a55741e1dcbf366ed637543c301ce.tar.bz2 chat-c7a8112c172a55741e1dcbf366ed637543c301ce.zip |
Moving the handing of extra_info etag before the extra info is retrieved from the database
-rw-r--r-- | api/channel.go | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/api/channel.go b/api/channel.go index 9216dbb09..803274d32 100644 --- a/api/channel.go +++ b/api/channel.go @@ -554,27 +554,31 @@ func getChannelExtraInfo(c *Context, w http.ResponseWriter, r *http.Request) { id := params["id"] sc := Srv.Store.Channel().Get(id) - scm := Srv.Store.Channel().GetMember(id, c.Session.UserId) - ecm := Srv.Store.Channel().GetExtraMembers(id, 20) - + var channel *model.Channel if cresult := <-sc; cresult.Err != nil { c.Err = cresult.Err return - } else if cmresult := <-scm; cmresult.Err != nil { + } else { + channel = cresult.Data.(*model.Channel) + } + + extraEtag := channel.ExtraEtag() + if HandleEtag(extraEtag, w, r) { + return + } + + scm := Srv.Store.Channel().GetMember(id, c.Session.UserId) + ecm := Srv.Store.Channel().GetExtraMembers(id, 20) + + if cmresult := <-scm; cmresult.Err != nil { c.Err = cmresult.Err return } else if ecmresult := <-ecm; ecmresult.Err != nil { c.Err = ecmresult.Err return } else { - channel := cresult.Data.(*model.Channel) member := cmresult.Data.(model.ChannelMember) extraMembers := ecmresult.Data.([]model.ExtraMember) - extraEtag := channel.ExtraEtag() - - if HandleEtag(extraEtag, w, r) { - return - } if !c.HasPermissionsToTeam(channel.TeamId, "getChannelExtraInfo") { return |