Migrate "Channel.RemoveMember" to Sync by default (#11245)

* Migrate Channel.RemoveMember to Sync by default

* Address comments
Этот коммит содержится в:
Shobhit Gupta
2019-06-18 12:28:47 -07:00
коммит произвёл Joram Wilander
родитель 3c8d772bf5
Коммит 6555bea117
8 изменённых файлов: 31 добавлений и 31 удалений

Просмотреть файл

@@ -1616,8 +1616,8 @@ func (a *App) removeUserFromChannel(userIdToRemove string, removerUserId string,
return err return err
} }
if cmresult := <-a.Srv.Store.Channel().RemoveMember(channel.Id, userIdToRemove); cmresult.Err != nil { if err := a.Srv.Store.Channel().RemoveMember(channel.Id, userIdToRemove); err != nil {
return cmresult.Err return err
} }
if cmhResult := <-a.Srv.Store.ChannelMemberHistory().LogLeaveEvent(userIdToRemove, channel.Id, model.GetMillis()); cmhResult.Err != nil { if cmhResult := <-a.Srv.Store.ChannelMemberHistory().LogLeaveEvent(userIdToRemove, channel.Id, model.GetMillis()); cmhResult.Err != nil {
return cmhResult.Err return cmhResult.Err

Просмотреть файл

@@ -840,8 +840,8 @@ func (a *App) LeaveTeam(team *model.Team, user *model.User, requestorId string)
for _, channel := range *channelList { for _, channel := range *channelList {
if !channel.IsGroupOrDirect() { if !channel.IsGroupOrDirect() {
a.InvalidateCacheForChannelMembers(channel.Id) a.InvalidateCacheForChannelMembers(channel.Id)
if result := <-a.Srv.Store.Channel().RemoveMember(channel.Id, user.Id); result.Err != nil { if err := a.Srv.Store.Channel().RemoveMember(channel.Id, user.Id); err != nil {
return result.Err return err
} }
} }
} }

Просмотреть файл

@@ -1685,13 +1685,12 @@ func (s SqlChannelStore) GetMemberCount(channelId string, allowFromCache bool) s
}) })
} }
func (s SqlChannelStore) RemoveMember(channelId string, userId string) store.StoreChannel { func (s SqlChannelStore) RemoveMember(channelId string, userId string) *model.AppError {
return store.Do(func(result *store.StoreResult) { _, err := s.GetMaster().Exec("DELETE FROM ChannelMembers WHERE ChannelId = :ChannelId AND UserId = :UserId", map[string]interface{}{"ChannelId": channelId, "UserId": userId})
_, err := s.GetMaster().Exec("DELETE FROM ChannelMembers WHERE ChannelId = :ChannelId AND UserId = :UserId", map[string]interface{}{"ChannelId": channelId, "UserId": userId}) if err != nil {
if err != nil { return model.NewAppError("SqlChannelStore.RemoveMember", "store.sql_channel.remove_member.app_error", nil, "channel_id="+channelId+", user_id="+userId+", "+err.Error(), http.StatusInternalServerError)
result.Err = model.NewAppError("SqlChannelStore.RemoveMember", "store.sql_channel.remove_member.app_error", nil, "channel_id="+channelId+", user_id="+userId+", "+err.Error(), http.StatusInternalServerError) }
} return nil
})
} }
func (s SqlChannelStore) RemoveAllDeactivatedMembers(channelId string) store.StoreChannel { func (s SqlChannelStore) RemoveAllDeactivatedMembers(channelId string) store.StoreChannel {

Просмотреть файл

@@ -172,7 +172,7 @@ type ChannelStore interface {
GetMemberCountFromCache(channelId string) int64 GetMemberCountFromCache(channelId string) int64
GetMemberCount(channelId string, allowFromCache bool) StoreChannel GetMemberCount(channelId string, allowFromCache bool) StoreChannel
GetPinnedPosts(channelId string) StoreChannel GetPinnedPosts(channelId string) StoreChannel
RemoveMember(channelId string, userId string) StoreChannel RemoveMember(channelId string, userId string) *model.AppError
PermanentDeleteMembersByUser(userId string) StoreChannel PermanentDeleteMembersByUser(userId string) StoreChannel
PermanentDeleteMembersByChannel(channelId string) *model.AppError PermanentDeleteMembersByChannel(channelId string) *model.AppError
UpdateLastViewedAt(channelIds []string, userId string) StoreChannel UpdateLastViewedAt(channelIds []string, userId string) StoreChannel

Просмотреть файл

@@ -910,7 +910,8 @@ func testChannelMemberStore(t *testing.T, ss store.Store) {
t.Fatal("should have saved 2 members") t.Fatal("should have saved 2 members")
} }
store.Must(ss.Channel().RemoveMember(o2.ChannelId, o2.UserId)) err = ss.Channel().RemoveMember(o2.ChannelId, o2.UserId)
require.Nil(t, err)
count = (<-ss.Channel().GetMemberCount(o1.ChannelId, false)).Data.(int64) count = (<-ss.Channel().GetMemberCount(o1.ChannelId, false)).Data.(int64)
if count != 1 { if count != 1 {

Просмотреть файл

@@ -1324,12 +1324,12 @@ func testTeamMemberRemovals(t *testing.T, ss store.Store) {
require.Nil(t, res.Err) require.Nil(t, res.Err)
res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id) res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id)
require.Nil(t, res.Err) require.Nil(t, res.Err)
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
require.Nil(t, res.Err) require.Nil(t, err)
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)
require.Nil(t, res.Err) require.Nil(t, err)
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id)
require.Nil(t, res.Err) require.Nil(t, err)
} }
func testChannelMemberRemovals(t *testing.T, ss store.Store) { func testChannelMemberRemovals(t *testing.T, ss store.Store) {
@@ -1399,12 +1399,12 @@ func testChannelMemberRemovals(t *testing.T, ss store.Store) {
require.Nil(t, res.Err) require.Nil(t, res.Err)
res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id) res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id)
require.Nil(t, res.Err) require.Nil(t, res.Err)
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
require.Nil(t, res.Err) require.Nil(t, err)
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)
require.Nil(t, res.Err) require.Nil(t, err)
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id)
require.Nil(t, res.Err) require.Nil(t, err)
} }
type removalsData struct { type removalsData struct {

Просмотреть файл

@@ -996,15 +996,15 @@ func (_m *ChannelStore) RemoveAllDeactivatedMembers(channelId string) store.Stor
} }
// RemoveMember provides a mock function with given fields: channelId, userId // RemoveMember provides a mock function with given fields: channelId, userId
func (_m *ChannelStore) RemoveMember(channelId string, userId string) store.StoreChannel { func (_m *ChannelStore) RemoveMember(channelId string, userId string) *model.AppError {
ret := _m.Called(channelId, userId) ret := _m.Called(channelId, userId)
var r0 store.StoreChannel var r0 *model.AppError
if rf, ok := ret.Get(0).(func(string, string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(string, string) *model.AppError); ok {
r0 = rf(channelId, userId) r0 = rf(channelId, userId)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel) r0 = ret.Get(0).(*model.AppError)
} }
} }

Просмотреть файл

@@ -3825,8 +3825,8 @@ func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) {
requireNUsers(2) requireNUsers(2)
// delete team membership of allowed user // delete team membership of allowed user
res = <-ss.Channel().RemoveMember(channel.Id, userGroupA.Id) err = ss.Channel().RemoveMember(channel.Id, userGroupA.Id)
require.Nil(t, res.Err) require.Nil(t, err)
// ensure removed allowed member still returned by query // ensure removed allowed member still returned by query
requireNUsers(2) requireNUsers(2)