diff options
author | Joram Wilander <jwawilander@gmail.com> | 2016-04-28 10:56:19 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-04-28 10:56:19 -0400 |
commit | 383cddd3d14107fabea28e09f5f9401623cd19d5 (patch) | |
tree | f0aedc438756bf41aa29aa5f3518e83f40e95da1 /api | |
parent | 3dbb5ab4cca74de7d7a00909927e1f034949052d (diff) | |
download | chat-383cddd3d14107fabea28e09f5f9401623cd19d5.tar.gz chat-383cddd3d14107fabea28e09f5f9401623cd19d5.tar.bz2 chat-383cddd3d14107fabea28e09f5f9401623cd19d5.zip |
Don't return error if already part of channel being joined (#2814)
Diffstat (limited to 'api')
-rw-r--r-- | api/channel.go | 13 | ||||
-rw-r--r-- | api/channel_test.go | 4 |
2 files changed, 13 insertions, 4 deletions
diff --git a/api/channel.go b/api/channel.go index 4b0e99b20..5f0d03246 100644 --- a/api/channel.go +++ b/api/channel.go @@ -513,9 +513,18 @@ 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, "") } + if result := <-Srv.Store.Channel().GetMember(channel.Id, user.Id); result.Err != nil { + if result.Err.Id != store.MISSING_MEMBER_ERROR { + return nil, result.Err + } + } else { + channelMember := result.Data.(model.ChannelMember) + return &channelMember, nil + } + newMember := &model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, NotifyProps: model.GetDefaultChannelNotifyProps()} - if cmresult := <-Srv.Store.Channel().SaveMember(newMember); cmresult.Err != nil { - l4g.Error("Failed to add member user_id=%v channel_id=%v err=%v", user.Id, channel.Id, cmresult.Err) + if result := <-Srv.Store.Channel().SaveMember(newMember); result.Err != nil { + l4g.Error("Failed to add member user_id=%v channel_id=%v err=%v", user.Id, channel.Id, result.Err) return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user.to.channel.failed.app_error", nil, "") } diff --git a/api/channel_test.go b/api/channel_test.go index 8ac785f77..a70e5532a 100644 --- a/api/channel_test.go +++ b/api/channel_test.go @@ -691,8 +691,8 @@ func TestAddChannelMember(t *testing.T) { t.Fatal("Should have errored, bad user id") } - if _, err := Client.AddChannelMember(channel1.Id, user2.Id); err == nil { - t.Fatal("Should have errored, user already a member") + if _, err := Client.AddChannelMember(channel1.Id, user2.Id); err != nil { + t.Fatal(err) } if _, err := Client.AddChannelMember("sgdsgsdg", user2.Id); err == nil { |