summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2015-07-30 08:24:06 -0400
committerChristopher Speller <crspeller@gmail.com>2015-07-30 08:24:06 -0400
commitc7a8112c172a55741e1dcbf366ed637543c301ce (patch)
tree74cfe4c266d3ba88430f80968cb5995b408cbd0a /api
parent3f97e06bf80c789ce8e2d572afdac65a73d417c8 (diff)
downloadchat-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
Diffstat (limited to 'api')
-rw-r--r--api/channel.go24
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