From 860a371eebdf378822f9cd246447272186c46dea Mon Sep 17 00:00:00 2001 From: Wim Date: Mon, 12 Jun 2017 20:30:30 +0200 Subject: Use cache for teamid --- matterclient/matterclient.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/matterclient/matterclient.go b/matterclient/matterclient.go index 859c94bc..43446bcb 100644 --- a/matterclient/matterclient.go +++ b/matterclient/matterclient.go @@ -295,8 +295,7 @@ func (m *MMClient) parseActionPost(rmsg *Message) { // edit messsages have no team_id for some reason if teamid == "" { // we can find the team_id from the channelid - result, _ := m.Client.GetChannel(data.ChannelId, "") - teamid = result.Data.(*model.ChannelData).Channel.TeamId + teamid = m.GetChannelTeamId(data.ChannelId) rmsg.Raw.Data["team_id"] = teamid } if teamid != "" { @@ -374,6 +373,19 @@ func (m *MMClient) GetChannelId(name string, teamId string) string { return "" } +func (m *MMClient) GetChannelTeamId(id string) string { + m.RLock() + defer m.RUnlock() + for _, t := range append(m.OtherTeams, m.Team) { + for _, channel := range append(*t.Channels, *t.MoreChannels...) { + if channel.Id == id { + return channel.TeamId + } + } + } + return "" +} + func (m *MMClient) GetChannelHeader(channelId string) string { m.RLock() defer m.RUnlock() -- cgit v1.2.3