summaryrefslogtreecommitdiffstats
path: root/app/channel.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-05-10 14:08:06 +0100
committerChristopher Speller <crspeller@gmail.com>2017-05-10 09:08:06 -0400
commita67898186175d9986b9e8cd8321afbc6fa84c8c6 (patch)
tree09d7be5f70dd2c0732a92ef06c322bd09506cdf3 /app/channel.go
parent7a927c03e4cfe8f14d254219ec54f76c2349598e (diff)
downloadchat-a67898186175d9986b9e8cd8321afbc6fa84c8c6.tar.gz
chat-a67898186175d9986b9e8cd8321afbc6fa84c8c6.tar.bz2
chat-a67898186175d9986b9e8cd8321afbc6fa84c8c6.zip
PLT-6488: Reduce database queries in user bulk import. (#6371)
Diffstat (limited to 'app/channel.go')
-rw-r--r--app/channel.go25
1 files changed, 13 insertions, 12 deletions
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
}