PLT-6488: Reduce database queries in user bulk import. (#6371)

Этот коммит содержится в:
George Goldberg
2017-05-10 14:08:06 +01:00
коммит произвёл Christopher Speller
родитель 7a927c03e4
Коммит a678981861
3 изменённых файлов: 95 добавлений и 42 удалений

Просмотреть файл

@@ -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
newMember, err := addUserToChannel(user, channel)
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, teamMember)
if err != nil {
return nil, err
}