diff options
author | Saturnino Abril <saturnino.abril@gmail.com> | 2017-03-13 21:26:51 +0900 |
---|---|---|
committer | George Goldberg <george@gberg.me> | 2017-03-13 12:26:51 +0000 |
commit | 8731465957ba41c1f828285e19ee3bb234e2ef58 (patch) | |
tree | 4051efe2fb0ec981e7004c32cf79d3592471fdfb /store/sql_channel_store.go | |
parent | 3559fb7959cf008b038239f2e7c43e604c44cd31 (diff) | |
download | chat-8731465957ba41c1f828285e19ee3bb234e2ef58.tar.gz chat-8731465957ba41c1f828285e19ee3bb234e2ef58.tar.bz2 chat-8731465957ba41c1f828285e19ee3bb234e2ef58.zip |
Endpoint for APIv4: GET /team/{team_id}/channels (#5681)
Diffstat (limited to 'store/sql_channel_store.go')
-rw-r--r-- | store/sql_channel_store.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/store/sql_channel_store.go b/store/sql_channel_store.go index 27a00f484..802a5a49d 100644 --- a/store/sql_channel_store.go +++ b/store/sql_channel_store.go @@ -550,6 +550,40 @@ func (s SqlChannelStore) GetMoreChannels(teamId string, userId string, offset in return storeChannel } +func (s SqlChannelStore) GetPublicChannelsForTeam(teamId string, offset int, limit int) StoreChannel { + storeChannel := make(StoreChannel, 1) + + go func() { + result := StoreResult{} + + data := &model.ChannelList{} + _, err := s.GetReplica().Select(data, + `SELECT + * + FROM + Channels + WHERE + TeamId = :TeamId + AND Type = 'O' + AND DeleteAt = 0 + ORDER BY DisplayName + LIMIT :Limit + OFFSET :Offset`, + map[string]interface{}{"TeamId": teamId, "Limit": limit, "Offset": offset}) + + if err != nil { + result.Err = model.NewLocAppError("SqlChannelStore.GetPublicChannelsForTeam", "store.sql_channel.get_public_channels.get.app_error", nil, "teamId="+teamId+", err="+err.Error()) + } else { + result.Data = data + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + type channelIdWithCountAndUpdateAt struct { Id string TotalMsgCount int64 |