From 4f589e077c82da00dd505319ddcf3565c699d4e6 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Wed, 10 May 2017 11:41:56 -0400 Subject: Removing channel list alias from apiv4 client (#6383) --- api4/channel_test.go | 38 +++++++++++++++++++------------------- model/channel_list.go | 11 +++++++++++ model/client4.go | 20 ++++++++++---------- 3 files changed, 40 insertions(+), 29 deletions(-) diff --git a/api4/channel_test.go b/api4/channel_test.go index 10cb272f3..c1eb2a806 100644 --- a/api4/channel_test.go +++ b/api4/channel_test.go @@ -502,7 +502,7 @@ func TestGetDeletedChannelsForTeam(t *testing.T) { channels, resp = Client.GetDeletedChannelsForTeam(team.Id, 0, 100, "") CheckNoError(t, resp) - if len(*channels) != 0 { + if len(channels) != 0 { t.Fatal("should be no deleted channels") } @@ -512,7 +512,7 @@ func TestGetDeletedChannelsForTeam(t *testing.T) { channels, resp = Client.GetDeletedChannelsForTeam(team.Id, 0, 100, "") CheckNoError(t, resp) - if len(*channels) != 1 { + if len(channels) != 1 { t.Fatal("should be 1 deleted channel") } @@ -521,19 +521,19 @@ func TestGetDeletedChannelsForTeam(t *testing.T) { channels, resp = Client.GetDeletedChannelsForTeam(team.Id, 0, 100, "") CheckNoError(t, resp) - if len(*channels) != 2 { + if len(channels) != 2 { t.Fatal("should be 2 deleted channels") } channels, resp = Client.GetDeletedChannelsForTeam(team.Id, 0, 1, "") CheckNoError(t, resp) - if len(*channels) != 1 { + if len(channels) != 1 { t.Fatal("should be one channel per page") } channels, resp = Client.GetDeletedChannelsForTeam(team.Id, 1, 1, "") CheckNoError(t, resp) - if len(*channels) != 1 { + if len(channels) != 1 { t.Fatal("should be one channel per page") } } @@ -548,11 +548,11 @@ func TestGetPublicChannelsForTeam(t *testing.T) { channels, resp := Client.GetPublicChannelsForTeam(team.Id, 0, 100, "") CheckNoError(t, resp) - if len(*channels) != 4 { + if len(channels) != 4 { t.Fatal("wrong length") } - for i, c := range *channels { + for i, c := range channels { if c.Type != model.CHANNEL_OPEN { t.Fatal("should include open channel only") } @@ -567,11 +567,11 @@ func TestGetPublicChannelsForTeam(t *testing.T) { privateChannel := th.CreatePrivateChannel() channels, resp = Client.GetPublicChannelsForTeam(team.Id, 0, 100, "") CheckNoError(t, resp) - if len(*channels) != 4 { + if len(channels) != 4 { t.Fatal("wrong length") } - for _, c := range *channels { + for _, c := range channels { if c.Type != model.CHANNEL_OPEN { t.Fatal("should not include private channel") } @@ -583,19 +583,19 @@ func TestGetPublicChannelsForTeam(t *testing.T) { channels, resp = Client.GetPublicChannelsForTeam(team.Id, 0, 1, "") CheckNoError(t, resp) - if len(*channels) != 1 { + if len(channels) != 1 { t.Fatal("should be one channel per page") } channels, resp = Client.GetPublicChannelsForTeam(team.Id, 1, 1, "") CheckNoError(t, resp) - if len(*channels) != 1 { + if len(channels) != 1 { t.Fatal("should be one channel per page") } channels, resp = Client.GetPublicChannelsForTeam(team.Id, 10000, 100, "") CheckNoError(t, resp) - if len(*channels) != 0 { + if len(channels) != 0 { t.Fatal("should be no channel") } @@ -629,11 +629,11 @@ func TestGetPublicChannelsByIdsForTeam(t *testing.T) { channels, resp := Client.GetPublicChannelsByIdsForTeam(teamId, input) CheckNoError(t, resp) - if len(*channels) != 1 { + if len(channels) != 1 { t.Fatal("should return 1 channel") } - if (*channels)[0].DisplayName != output[0] { + if (channels)[0].DisplayName != output[0] { t.Fatal("missing channel") } @@ -646,11 +646,11 @@ func TestGetPublicChannelsByIdsForTeam(t *testing.T) { channels, resp = Client.GetPublicChannelsByIdsForTeam(teamId, input) CheckNoError(t, resp) - if len(*channels) != 2 { + if len(channels) != 2 { t.Fatal("should return 2 channels") } - for i, c := range *channels { + for i, c := range channels { if c.DisplayName != output[i] { t.Fatal("missing channel") } @@ -689,7 +689,7 @@ func TestGetChannelsForTeamForUser(t *testing.T) { CheckNoError(t, resp) found := make([]bool, 3) - for _, c := range *channels { + for _, c := range channels { if c.Id == th.BasicChannel.Id { found[0] = true } else if c.Id == th.BasicChannel2.Id { @@ -739,7 +739,7 @@ func TestSearchChannels(t *testing.T) { CheckNoError(t, resp) found := false - for _, c := range *channels { + for _, c := range channels { if c.Type != model.CHANNEL_OPEN { t.Fatal("should only return public channels") } @@ -758,7 +758,7 @@ func TestSearchChannels(t *testing.T) { CheckNoError(t, resp) found = false - for _, c := range *channels { + for _, c := range channels { if c.Id == th.BasicPrivateChannel.Id { found = true } diff --git a/model/channel_list.go b/model/channel_list.go index 18c726908..d5a4ccb7c 100644 --- a/model/channel_list.go +++ b/model/channel_list.go @@ -50,3 +50,14 @@ func ChannelListFromJson(data io.Reader) *ChannelList { return nil } } + +func ChannelSliceFromJson(data io.Reader) []*Channel { + decoder := json.NewDecoder(data) + var o []*Channel + err := decoder.Decode(&o) + if err == nil { + return o + } else { + return nil + } +} diff --git a/model/client4.go b/model/client4.go index 2e11d98b1..4a01a1f75 100644 --- a/model/client4.go +++ b/model/client4.go @@ -1270,54 +1270,54 @@ func (c *Client4) GetPinnedPosts(channelId string, etag string) (*PostList, *Res } // GetPublicChannelsForTeam returns a list of public channels based on the provided team id string. -func (c *Client4) GetPublicChannelsForTeam(teamId string, page int, perPage int, etag string) (*ChannelList, *Response) { +func (c *Client4) GetPublicChannelsForTeam(teamId string, page int, perPage int, etag string) ([]*Channel, *Response) { query := fmt.Sprintf("?page=%v&per_page=%v", page, perPage) if r, err := c.DoApiGet(c.GetChannelsForTeamRoute(teamId)+query, etag); err != nil { return nil, &Response{StatusCode: r.StatusCode, Error: err} } else { defer closeBody(r) - return ChannelListFromJson(r.Body), BuildResponse(r) + return ChannelSliceFromJson(r.Body), BuildResponse(r) } } // GetDeletedChannelsForTeam returns a list of public channels based on the provided team id string. -func (c *Client4) GetDeletedChannelsForTeam(teamId string, page int, perPage int, etag string) (*ChannelList, *Response) { +func (c *Client4) GetDeletedChannelsForTeam(teamId string, page int, perPage int, etag string) ([]*Channel, *Response) { query := fmt.Sprintf("/deleted?page=%v&per_page=%v", page, perPage) if r, err := c.DoApiGet(c.GetChannelsForTeamRoute(teamId)+query, etag); err != nil { return nil, &Response{StatusCode: r.StatusCode, Error: err} } else { defer closeBody(r) - return ChannelListFromJson(r.Body), BuildResponse(r) + return ChannelSliceFromJson(r.Body), BuildResponse(r) } } // GetPublicChannelsByIdsForTeam returns a list of public channels based on provided team id string -func (c *Client4) GetPublicChannelsByIdsForTeam(teamId string, channelIds []string) (*ChannelList, *Response) { +func (c *Client4) GetPublicChannelsByIdsForTeam(teamId string, channelIds []string) ([]*Channel, *Response) { if r, err := c.DoApiPost(c.GetChannelsForTeamRoute(teamId)+"/ids", ArrayToJson(channelIds)); err != nil { return nil, &Response{StatusCode: r.StatusCode, Error: err} } else { defer closeBody(r) - return ChannelListFromJson(r.Body), BuildResponse(r) + return ChannelSliceFromJson(r.Body), BuildResponse(r) } } // GetChannelsForTeamForUser returns a list channels of on a team for a user. -func (c *Client4) GetChannelsForTeamForUser(teamId, userId, etag string) (*ChannelList, *Response) { +func (c *Client4) GetChannelsForTeamForUser(teamId, userId, etag string) ([]*Channel, *Response) { if r, err := c.DoApiGet(c.GetUserRoute(userId)+c.GetTeamRoute(teamId)+"/channels", etag); err != nil { return nil, &Response{StatusCode: r.StatusCode, Error: err} } else { defer closeBody(r) - return ChannelListFromJson(r.Body), BuildResponse(r) + return ChannelSliceFromJson(r.Body), BuildResponse(r) } } // SearchChannels returns the channels on a team matching the provided search term. -func (c *Client4) SearchChannels(teamId string, search *ChannelSearch) (*ChannelList, *Response) { +func (c *Client4) SearchChannels(teamId string, search *ChannelSearch) ([]*Channel, *Response) { if r, err := c.DoApiPost(c.GetChannelsForTeamRoute(teamId)+"/search", search.ToJson()); err != nil { return nil, &Response{StatusCode: r.StatusCode, Error: err} } else { defer closeBody(r) - return ChannelListFromJson(r.Body), BuildResponse(r) + return ChannelSliceFromJson(r.Body), BuildResponse(r) } } -- cgit v1.2.3-1-g7c22