summaryrefslogtreecommitdiffstats
path: root/api/channel.go
diff options
context:
space:
mode:
author=Corey Hulen <corey@hulen.com>2015-08-02 09:41:12 -0800
committer=Corey Hulen <corey@hulen.com>2015-08-02 09:41:12 -0800
commit247708d924770737a3c03f956b19d8096da2bdea (patch)
tree3d6bd381545e660808f74a1379048e57cc0c6717 /api/channel.go
parente76fc37b6df7d53ea86a5b42009d5d1161741270 (diff)
parent718d670d699e295fcad903d507bc989c51a1ef50 (diff)
downloadchat-247708d924770737a3c03f956b19d8096da2bdea.tar.gz
chat-247708d924770737a3c03f956b19d8096da2bdea.tar.bz2
chat-247708d924770737a3c03f956b19d8096da2bdea.zip
Merge branch 'master' into mm-1619
Diffstat (limited to 'api/channel.go')
-rw-r--r--api/channel.go22
1 files changed, 16 insertions, 6 deletions
diff --git a/api/channel.go b/api/channel.go
index 123fd8a35..803274d32 100644
--- a/api/channel.go
+++ b/api/channel.go
@@ -554,20 +554,29 @@ 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)
@@ -586,6 +595,7 @@ func getChannelExtraInfo(c *Context, w http.ResponseWriter, r *http.Request) {
}
data := model.ChannelExtra{Id: channel.Id, Members: extraMembers}
+ w.Header().Set(model.HEADER_ETAG_SERVER, extraEtag)
w.Header().Set("Expires", "-1")
w.Write([]byte(data.ToJson()))
}
@@ -711,7 +721,7 @@ func removeChannelMember(c *Context, w http.ResponseWriter, r *http.Request) {
}
message := model.NewMessage(c.Session.TeamId, "", userId, model.ACTION_USER_REMOVED)
- message.Add("channel_id",id)
+ message.Add("channel_id", id)
message.Add("remover", c.Session.UserId)
PublishAndForget(message)