From a67898186175d9986b9e8cd8321afbc6fa84c8c6 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Wed, 10 May 2017 14:08:06 +0100 Subject: PLT-6488: Reduce database queries in user bulk import. (#6371) --- app/channel.go | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'app/channel.go') diff --git a/app/channel.go b/app/channel.go index b4855bc9e..f39a57839 100644 --- a/app/channel.go +++ b/app/channel.go @@ -435,7 +435,7 @@ func DeleteChannel(channel *model.Channel, userId string) *model.AppError { return nil } -func addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError) { +func addUserToChannel(user *model.User, channel *model.Channel, teamMember *model.TeamMember) (*model.ChannelMember, *model.AppError) { if channel.DeleteAt > 0 { return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user_to_channel.deleted.app_error", nil, "") } @@ -444,18 +444,8 @@ func addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelM return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user_to_channel.type.app_error", nil, "") } - tmchan := Srv.Store.Team().GetMember(channel.TeamId, user.Id) cmchan := Srv.Store.Channel().GetMember(channel.Id, user.Id) - if result := <-tmchan; result.Err != nil { - return nil, result.Err - } else { - teamMember := result.Data.(*model.TeamMember) - if teamMember.DeleteAt > 0 { - return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user.to.channel.failed.deleted.app_error", nil, "") - } - } - if result := <-cmchan; result.Err != nil { if result.Err.Id != store.MISSING_CHANNEL_MEMBER_ERROR { return nil, result.Err @@ -485,8 +475,19 @@ func addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelM } func AddUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError) { + tmchan := Srv.Store.Team().GetMember(channel.TeamId, user.Id) + var teamMember *model.TeamMember + + if result := <-tmchan; result.Err != nil { + return nil, result.Err + } else { + teamMember = result.Data.(*model.TeamMember) + if teamMember.DeleteAt > 0 { + return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user.to.channel.failed.deleted.app_error", nil, "") + } + } - newMember, err := addUserToChannel(user, channel) + newMember, err := addUserToChannel(user, channel, teamMember) if err != nil { return nil, err } -- cgit v1.2.3-1-g7c22