diff options
Diffstat (limited to 'api')
-rw-r--r-- | api/channel.go | 6 | ||||
-rw-r--r-- | api/channel_test.go | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/api/channel.go b/api/channel.go index b034e94ba..7cfc22833 100644 --- a/api/channel.go +++ b/api/channel.go @@ -146,7 +146,11 @@ func CreateDirectChannel(userId string, otherUserId string) (*model.Channel, *mo } if result := <-Srv.Store.Channel().SaveDirectChannel(channel, cm1, cm2); result.Err != nil { - return nil, result.Err + if result.Err.Id == store.CHANNEL_EXISTS_ERROR { + return result.Data.(*model.Channel), nil + } else { + return nil, result.Err + } } else { return result.Data.(*model.Channel), nil } diff --git a/api/channel_test.go b/api/channel_test.go index 31b201346..69902c3ad 100644 --- a/api/channel_test.go +++ b/api/channel_test.go @@ -113,8 +113,9 @@ func TestCreateDirectChannel(t *testing.T) { t.Fatal("channel type was not direct") } - if _, err := Client.CreateDirectChannel(th.BasicUser2.Id); err == nil { - t.Fatal("channel already exists and should have failed") + // don't fail on direct channels already existing + if _, err := Client.CreateDirectChannel(th.BasicUser2.Id); err != nil { + t.Fatal(err) } if _, err := Client.CreateDirectChannel("junk"); err == nil { |