From e7b25f4cd8b7d87b99153fd4a901d3f9f92d7b0d Mon Sep 17 00:00:00 2001 From: Alexander Smaga Date: Mon, 17 Oct 2016 15:12:56 +0300 Subject: GH-4187 Create direct channel during incoming webhook if not exists (#4206) --- api/channel.go | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) (limited to 'api/channel.go') diff --git a/api/channel.go b/api/channel.go index 538c2d497..f40c979ca 100644 --- a/api/channel.go +++ b/api/channel.go @@ -137,36 +137,19 @@ func createDirectChannel(c *Context, w http.ResponseWriter, r *http.Request) { func CreateDirectChannel(userId string, otherUserId string) (*model.Channel, *model.AppError) { uc := Srv.Store.User().Get(otherUserId) - channel := new(model.Channel) - - channel.DisplayName = "" - channel.Name = model.GetDMNameFromIds(otherUserId, userId) - - channel.Header = "" - channel.Type = model.CHANNEL_DIRECT - if uresult := <-uc; uresult.Err != nil { return nil, model.NewLocAppError("CreateDirectChannel", "api.channel.create_direct_channel.invalid_user.app_error", nil, otherUserId) } - cm1 := &model.ChannelMember{ - UserId: userId, - NotifyProps: model.GetDefaultChannelNotifyProps(), - Roles: model.ROLE_CHANNEL_USER.Id, - } - cm2 := &model.ChannelMember{ - UserId: otherUserId, - NotifyProps: model.GetDefaultChannelNotifyProps(), - Roles: model.ROLE_CHANNEL_USER.Id, - } - - if result := <-Srv.Store.Channel().SaveDirectChannel(channel, cm1, cm2); result.Err != nil { + if result := <-Srv.Store.Channel().CreateDirectChannel(userId, otherUserId); result.Err != nil { if result.Err.Id == store.CHANNEL_EXISTS_ERROR { return result.Data.(*model.Channel), nil } else { return nil, result.Err } } else { + channel := result.Data.(*model.Channel) + message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_DIRECT_ADDED, "", channel.Id, "", nil) message.Add("teammate_id", otherUserId) go Publish(message) -- cgit v1.2.3-1-g7c22