Migrates Channel.GetAllChannelsForExportAfter to sync by default (#11273)

Этот коммит содержится в:
Rodrigo Villablanca Vásquez
2019-06-19 07:31:51 -04:00
коммит произвёл George Goldberg
родитель 2ce36c2eb1
Коммит c40017b39d
5 изменённых файлов: 42 добавлений и 39 удалений

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

@@ -146,14 +146,12 @@ func (a *App) ExportAllTeams(writer io.Writer) *model.AppError {
func (a *App) ExportAllChannels(writer io.Writer) *model.AppError { func (a *App) ExportAllChannels(writer io.Writer) *model.AppError {
afterId := strings.Repeat("0", 26) afterId := strings.Repeat("0", 26)
for { for {
result := <-a.Srv.Store.Channel().GetAllChannelsForExportAfter(1000, afterId) channels, err := a.Srv.Store.Channel().GetAllChannelsForExportAfter(1000, afterId)
if result.Err != nil { if err != nil {
return result.Err return err
} }
channels := result.Data.([]*model.ChannelForExport)
if len(channels) == 0 { if len(channels) == 0 {
break break
} }

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

@@ -2465,10 +2465,9 @@ func (s SqlChannelStore) ClearAllCustomRoleAssignments() *model.AppError {
return nil return nil
} }
func (s SqlChannelStore) GetAllChannelsForExportAfter(limit int, afterId string) store.StoreChannel { func (s SqlChannelStore) GetAllChannelsForExportAfter(limit int, afterId string) ([]*model.ChannelForExport, *model.AppError) {
return store.Do(func(result *store.StoreResult) { var channels []*model.ChannelForExport
var data []*model.ChannelForExport if _, err := s.GetReplica().Select(&channels, `
if _, err := s.GetReplica().Select(&data, `
SELECT SELECT
Channels.*, Channels.*,
Teams.Name as TeamName, Teams.Name as TeamName,
@@ -2485,12 +2484,10 @@ func (s SqlChannelStore) GetAllChannelsForExportAfter(limit int, afterId string)
Id Id
LIMIT :Limit`, LIMIT :Limit`,
map[string]interface{}{"AfterId": afterId, "Limit": limit}); err != nil { map[string]interface{}{"AfterId": afterId, "Limit": limit}); err != nil {
result.Err = model.NewAppError("SqlChannelStore.GetAllChannelsForExportAfter", "store.sql_channel.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) return nil, model.NewAppError("SqlChannelStore.GetAllChannelsForExportAfter", "store.sql_channel.get_all.app_error", nil, err.Error(), http.StatusInternalServerError)
return
} }
result.Data = data return channels, nil
})
} }
func (s SqlChannelStore) GetChannelMembersForExport(userId string, teamId string) ([]*model.ChannelMemberForExport, *model.AppError) { func (s SqlChannelStore) GetChannelMembersForExport(userId string, teamId string) ([]*model.ChannelMemberForExport, *model.AppError) {

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

@@ -194,7 +194,7 @@ type ChannelStore interface {
ResetAllChannelSchemes() StoreChannel ResetAllChannelSchemes() StoreChannel
ClearAllCustomRoleAssignments() *model.AppError ClearAllCustomRoleAssignments() *model.AppError
MigratePublicChannels() error MigratePublicChannels() error
GetAllChannelsForExportAfter(limit int, afterId string) StoreChannel GetAllChannelsForExportAfter(limit int, afterId string) ([]*model.ChannelForExport, *model.AppError)
GetAllDirectChannelsForExportAfter(limit int, afterId string) StoreChannel GetAllDirectChannelsForExportAfter(limit int, afterId string) StoreChannel
GetChannelMembersForExport(userId string, teamId string) ([]*model.ChannelMemberForExport, *model.AppError) GetChannelMembersForExport(userId string, teamId string) ([]*model.ChannelMemberForExport, *model.AppError)
RemoveAllDeactivatedMembers(channelId string) *model.AppError RemoveAllDeactivatedMembers(channelId string) *model.AppError

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

@@ -3290,9 +3290,8 @@ func testChannelStoreGetAllChannelsForExportAfter(t *testing.T, ss store.Store)
_, err = ss.Channel().Save(&c1, -1) _, err = ss.Channel().Save(&c1, -1)
require.Nil(t, err) require.Nil(t, err)
r1 := <-ss.Channel().GetAllChannelsForExportAfter(10000, strings.Repeat("0", 26)) d1, err := ss.Channel().GetAllChannelsForExportAfter(10000, strings.Repeat("0", 26))
assert.Nil(t, r1.Err) assert.Nil(t, err)
d1 := r1.Data.([]*model.ChannelForExport)
found := false found := false
for _, c := range d1 { for _, c := range d1 {

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

@@ -263,19 +263,28 @@ func (_m *ChannelStore) GetAllChannels(page int, perPage int, opts store.Channel
} }
// GetAllChannelsForExportAfter provides a mock function with given fields: limit, afterId // GetAllChannelsForExportAfter provides a mock function with given fields: limit, afterId
func (_m *ChannelStore) GetAllChannelsForExportAfter(limit int, afterId string) store.StoreChannel { func (_m *ChannelStore) GetAllChannelsForExportAfter(limit int, afterId string) ([]*model.ChannelForExport, *model.AppError) {
ret := _m.Called(limit, afterId) ret := _m.Called(limit, afterId)
var r0 store.StoreChannel var r0 []*model.ChannelForExport
if rf, ok := ret.Get(0).(func(int, string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(int, string) []*model.ChannelForExport); ok {
r0 = rf(limit, afterId) r0 = rf(limit, afterId)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel) r0 = ret.Get(0).([]*model.ChannelForExport)
} }
} }
return r0 var r1 *model.AppError
if rf, ok := ret.Get(1).(func(int, string) *model.AppError); ok {
r1 = rf(limit, afterId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
} }
// GetAllDirectChannelsForExportAfter provides a mock function with given fields: limit, afterId // GetAllDirectChannelsForExportAfter provides a mock function with given fields: limit, afterId