summaryrefslogtreecommitdiffstats
path: root/api4/channel.go
diff options
context:
space:
mode:
Diffstat (limited to 'api4/channel.go')
-rw-r--r--api4/channel.go107
1 files changed, 83 insertions, 24 deletions
diff --git a/api4/channel.go b/api4/channel.go
index b2c920ddb..cb9112677 100644
--- a/api4/channel.go
+++ b/api4/channel.go
@@ -209,13 +209,20 @@ func patchChannel(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- if rchannel, err := c.App.PatchChannel(oldChannel, patch, c.Session.UserId); err != nil {
+ rchannel, err := c.App.PatchChannel(oldChannel, patch, c.Session.UserId)
+ if err != nil {
+ c.Err = err
+ return
+ }
+
+ err = c.App.FillInChannelProps(rchannel)
+ if err != nil {
c.Err = err
return
- } else {
- c.LogAudit("")
- w.Write([]byte(rchannel.ToJson()))
}
+
+ c.LogAudit("")
+ w.Write([]byte(rchannel.ToJson()))
}
func restoreChannel(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -361,6 +368,12 @@ func getChannel(c *Context, w http.ResponseWriter, r *http.Request) {
}
}
+ err = c.App.FillInChannelProps(channel)
+ if err != nil {
+ c.Err = err
+ return
+ }
+
w.Write([]byte(channel.ToJson()))
}
@@ -444,13 +457,19 @@ func getPublicChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Request
return
}
- if channels, err := c.App.GetPublicChannelsForTeam(c.Params.TeamId, c.Params.Page*c.Params.PerPage, c.Params.PerPage); err != nil {
+ channels, err := c.App.GetPublicChannelsForTeam(c.Params.TeamId, c.Params.Page*c.Params.PerPage, c.Params.PerPage)
+ if err != nil {
c.Err = err
return
- } else {
- w.Write([]byte(channels.ToJson()))
+ }
+
+ err = c.App.FillInChannelsProps(channels)
+ if err != nil {
+ c.Err = err
return
}
+
+ w.Write([]byte(channels.ToJson()))
}
func getDeletedChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -464,13 +483,19 @@ func getDeletedChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Reques
return
}
- if channels, err := c.App.GetDeletedChannels(c.Params.TeamId, c.Params.Page*c.Params.PerPage, c.Params.PerPage); err != nil {
+ channels, err := c.App.GetDeletedChannels(c.Params.TeamId, c.Params.Page*c.Params.PerPage, c.Params.PerPage)
+ if err != nil {
c.Err = err
return
- } else {
- w.Write([]byte(channels.ToJson()))
+ }
+
+ err = c.App.FillInChannelsProps(channels)
+ if err != nil {
+ c.Err = err
return
}
+
+ w.Write([]byte(channels.ToJson()))
}
func getPublicChannelsByIdsForTeam(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -497,12 +522,19 @@ func getPublicChannelsByIdsForTeam(c *Context, w http.ResponseWriter, r *http.Re
return
}
- if channels, err := c.App.GetPublicChannelsByIdsForTeam(c.Params.TeamId, channelIds); err != nil {
+ channels, err := c.App.GetPublicChannelsByIdsForTeam(c.Params.TeamId, channelIds)
+ if err != nil {
+ c.Err = err
+ return
+ }
+
+ err = c.App.FillInChannelsProps(channels)
+ if err != nil {
c.Err = err
return
- } else {
- w.Write([]byte(channels.ToJson()))
}
+
+ w.Write([]byte(channels.ToJson()))
}
func getChannelsForTeamForUser(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -521,15 +553,24 @@ func getChannelsForTeamForUser(c *Context, w http.ResponseWriter, r *http.Reques
return
}
- if channels, err := c.App.GetChannelsForUser(c.Params.TeamId, c.Params.UserId); err != nil {
+ channels, err := c.App.GetChannelsForUser(c.Params.TeamId, c.Params.UserId)
+ if err != nil {
c.Err = err
return
- } else if c.HandleEtag(channels.Etag(), "Get Channels", w, r) {
+ }
+
+ if c.HandleEtag(channels.Etag(), "Get Channels", w, r) {
return
- } else {
- w.Header().Set(model.HEADER_ETAG_SERVER, channels.Etag())
- w.Write([]byte(channels.ToJson()))
}
+
+ err = c.App.FillInChannelsProps(channels)
+ if err != nil {
+ c.Err = err
+ return
+ }
+
+ w.Header().Set(model.HEADER_ETAG_SERVER, channels.Etag())
+ w.Write([]byte(channels.ToJson()))
}
func autocompleteChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -545,12 +586,15 @@ func autocompleteChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Requ
name := r.URL.Query().Get("name")
- if channels, err := c.App.AutocompleteChannels(c.Params.TeamId, name); err != nil {
+ channels, err := c.App.AutocompleteChannels(c.Params.TeamId, name)
+ if err != nil {
c.Err = err
return
- } else {
- w.Write([]byte(channels.ToJson()))
}
+
+ // Don't fill in channels props, since unused by client and potentially expensive.
+
+ w.Write([]byte(channels.ToJson()))
}
func searchChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -570,12 +614,15 @@ func searchChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
- if channels, err := c.App.SearchChannels(c.Params.TeamId, props.Term); err != nil {
+ channels, err := c.App.SearchChannels(c.Params.TeamId, props.Term)
+ if err != nil {
c.Err = err
return
- } else {
- w.Write([]byte(channels.ToJson()))
}
+
+ // Don't fill in channels props, since unused by client and potentially expensive.
+
+ w.Write([]byte(channels.ToJson()))
}
func deleteChannel(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -638,6 +685,12 @@ func getChannelByName(c *Context, w http.ResponseWriter, r *http.Request) {
}
}
+ err = c.App.FillInChannelProps(channel)
+ if err != nil {
+ c.Err = err
+ return
+ }
+
w.Write([]byte(channel.ToJson()))
}
@@ -660,6 +713,12 @@ func getChannelByNameForTeamName(c *Context, w http.ResponseWriter, r *http.Requ
return
}
+ err = c.App.FillInChannelProps(channel)
+ if err != nil {
+ c.Err = err
+ return
+ }
+
w.Write([]byte(channel.ToJson()))
}