From 1dc93ec4f001edd01daccbe408767d4878be25a3 Mon Sep 17 00:00:00 2001 From: David Buckley Date: Sat, 7 Sep 2019 20:38:45 +0100 Subject: [PATCH] Make getChannelIdTeam behave like GetChannelId for groups (mattermost) (#873) GetChannelId will support names generated from query groups when a team is not set, but not when a team is set since it falls through to getChannelIdTeam which has a different inner loop. i This pull makes the two implementations do the same thing. --- matterclient/channels.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/matterclient/channels.go b/matterclient/channels.go index ae1bf384..e1ebf48d 100644 --- a/matterclient/channels.go +++ b/matterclient/channels.go @@ -36,6 +36,16 @@ func (m *MMClient) GetChannelHeader(channelId string) string { //nolint:golint return "" } +func getNormalisedName(channel *model.Channel) string { + if channel.Type == model.CHANNEL_GROUP { + // (deprecated in favor of ReplaceAll in go 1.12) + res := strings.Replace(channel.DisplayName, ", ", "-", -1) //nolint: gocritic + res = strings.Replace(res, " ", "_", -1) //nolint: gocritic + return res + } + return channel.Name +} + func (m *MMClient) GetChannelId(name string, teamId string) string { //nolint:golint m.RLock() defer m.RUnlock() @@ -45,13 +55,7 @@ func (m *MMClient) GetChannelId(name string, teamId string) string { //nolint:go for _, t := range m.OtherTeams { for _, channel := range append(t.Channels, t.MoreChannels...) { - if channel.Type == model.CHANNEL_GROUP { - res := strings.Replace(channel.DisplayName, ", ", "-", -1) - res = strings.Replace(res, " ", "_", -1) - if res == name { - return channel.Id - } - } else if channel.Name == name { + if getNormalisedName(channel) == name { return channel.Id } } @@ -63,7 +67,7 @@ func (m *MMClient) getChannelIdTeam(name string, teamId string) string { //nolin for _, t := range m.OtherTeams { if t.Id == teamId { for _, channel := range append(t.Channels, t.MoreChannels...) { - if channel.Name == name { + if getNormalisedName(channel) == name { return channel.Id } } @@ -81,12 +85,7 @@ func (m *MMClient) GetChannelName(channelId string) string { //nolint:golint } for _, channel := range append(t.Channels, t.MoreChannels...) { if channel.Id == channelId { - if channel.Type == model.CHANNEL_GROUP { - res := strings.Replace(channel.DisplayName, ", ", "-", -1) - res = strings.Replace(res, " ", "_", -1) - return res - } - return channel.Name + return getNormalisedName(channel) } } }