MM-18356: Adds ability to paginate channel search. (#12830)
* MM-18356: Adds ability to paginate channel search. * MM-18356: Minor refactor. * MM-18356: Adds doc. * MM-18356: Fixes doc. * MM-18356: Some commentary, adds the total count to non-paginated responses, and removes a stray fmt. * MM-18356: Fixes shadowed variable. * MM-18356: Removes paginate field and API parameter. * MM-18356: Adds method to check if channel search is a paginated request. * MM-18356: Vet fix.
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
608a137d2b
Коммит
0212845385
@@ -90,12 +90,17 @@ type DirectChannelForExport struct {
|
||||
// ExcludeDefaultChannels will exclude the configured default channels (ex 'town-square' and 'off-topic').
|
||||
// IncludeDeleted will include channel records where DeleteAt != 0.
|
||||
// ExcludeChannelNames will exclude channels from the results by name.
|
||||
// Paginate whether to paginate the results.
|
||||
// Page page requested, if results are paginated.
|
||||
// PerPage number of results per page, if paginated.
|
||||
//
|
||||
type ChannelSearchOpts struct {
|
||||
NotAssociatedToGroup string
|
||||
ExcludeDefaultChannels bool
|
||||
IncludeDeleted bool
|
||||
ExcludeChannelNames []string
|
||||
Page *int
|
||||
PerPage *int
|
||||
}
|
||||
|
||||
func (o *Channel) DeepCopy() *Channel {
|
||||
|
||||
@@ -14,6 +14,8 @@ type ChannelSearch struct {
|
||||
Term string `json:"term"`
|
||||
ExcludeDefaultChannels bool `json:"exclude_default_channels"`
|
||||
NotAssociatedToGroup string `json:"not_associated_to_group"`
|
||||
Page *int `json:"page,omitempty"`
|
||||
PerPage *int `json:"per_page,omitempty"`
|
||||
}
|
||||
|
||||
// ToJson convert a Channel to a json string
|
||||
|
||||
@@ -2255,6 +2255,16 @@ func (c *Client4) SearchAllChannels(search *ChannelSearch) (*ChannelListWithTeam
|
||||
return ChannelListWithTeamDataFromJson(r.Body), BuildResponse(r)
|
||||
}
|
||||
|
||||
// SearchAllChannelsPaged searches all the channels and returns the results paged with the total count.
|
||||
func (c *Client4) SearchAllChannelsPaged(search *ChannelSearch) (*ChannelsWithCount, *Response) {
|
||||
r, err := c.DoApiPost(c.GetChannelsRoute()+"/search", search.ToJson())
|
||||
if err != nil {
|
||||
return nil, BuildErrorResponse(r, err)
|
||||
}
|
||||
defer closeBody(r)
|
||||
return ChannelsWithCountFromJson(r.Body), BuildResponse(r)
|
||||
}
|
||||
|
||||
// SearchGroupChannels returns the group channels of the user whose members' usernames match the search term.
|
||||
func (c *Client4) SearchGroupChannels(search *ChannelSearch) ([]*Channel, *Response) {
|
||||
r, err := c.DoApiPost(c.GetChannelsRoute()+"/group/search", search.ToJson())
|
||||
|
||||
Ссылка в новой задаче
Block a user