MM-12773: Return error if ChannelMemberHistory record creation fails. (#13517)
* MM-12773: Fail if creating ChannelMemberHistory record fails. * MM-12773: Guard against attempting to create duplicate channel member history record.
Этот коммит содержится в:
коммит произвёл
Rohitesh Gupta
родитель
2a28edcd93
Коммит
3d5f36cc4a
@@ -95,7 +95,8 @@ func (a *App) JoinDefaultChannels(teamId string, user *model.User, shouldBeAdmin
|
|||||||
|
|
||||||
_, err = a.Srv.Store.Channel().SaveMember(cm)
|
_, err = a.Srv.Store.Channel().SaveMember(cm)
|
||||||
if histErr := a.Srv.Store.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()); histErr != nil {
|
if histErr := a.Srv.Store.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()); histErr != nil {
|
||||||
mlog.Warn("Failed to update ChannelMemberHistory table", mlog.Err(histErr))
|
mlog.Error("Failed to update ChannelMemberHistory table", mlog.Err(histErr))
|
||||||
|
return histErr
|
||||||
}
|
}
|
||||||
|
|
||||||
if *a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages {
|
if *a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages {
|
||||||
@@ -249,7 +250,8 @@ func (a *App) CreateChannel(channel *model.Channel, addMember bool) (*model.Chan
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := a.Srv.Store.ChannelMemberHistory().LogJoinEvent(channel.CreatorId, sc.Id, model.GetMillis()); err != nil {
|
if err := a.Srv.Store.ChannelMemberHistory().LogJoinEvent(channel.CreatorId, sc.Id, model.GetMillis()); err != nil {
|
||||||
mlog.Warn("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
mlog.Error("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
a.InvalidateCacheForUser(channel.CreatorId)
|
a.InvalidateCacheForUser(channel.CreatorId)
|
||||||
@@ -368,10 +370,14 @@ func (a *App) createDirectChannel(userId string, otherUserId string) (*model.Cha
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err = a.Srv.Store.ChannelMemberHistory().LogJoinEvent(userId, channel.Id, model.GetMillis()); err != nil {
|
if err = a.Srv.Store.ChannelMemberHistory().LogJoinEvent(userId, channel.Id, model.GetMillis()); err != nil {
|
||||||
mlog.Warn("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
mlog.Error("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if userId != otherUserId {
|
||||||
if err = a.Srv.Store.ChannelMemberHistory().LogJoinEvent(otherUserId, channel.Id, model.GetMillis()); err != nil {
|
if err = a.Srv.Store.ChannelMemberHistory().LogJoinEvent(otherUserId, channel.Id, model.GetMillis()); err != nil {
|
||||||
mlog.Warn("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
mlog.Error("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return channel, nil
|
return channel, nil
|
||||||
@@ -479,7 +485,8 @@ func (a *App) createGroupChannel(userIds []string, creatorId string) (*model.Cha
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := a.Srv.Store.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()); err != nil {
|
if err := a.Srv.Store.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()); err != nil {
|
||||||
mlog.Warn("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
mlog.Error("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -988,7 +995,8 @@ func (a *App) addUserToChannel(user *model.User, channel *model.Channel, teamMem
|
|||||||
a.WaitForChannelMembership(channel.Id, user.Id)
|
a.WaitForChannelMembership(channel.Id, user.Id)
|
||||||
|
|
||||||
if err = a.Srv.Store.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()); err != nil {
|
if err = a.Srv.Store.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()); err != nil {
|
||||||
mlog.Warn("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
mlog.Error("Failed to update ChannelMemberHistory table", mlog.Err(err))
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
a.InvalidateCacheForUser(user.Id)
|
a.InvalidateCacheForUser(user.Id)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user