GetAllForExportAfter migrated to sync by default. (#11562)

Этот коммит содержится в:
Max Vovshin
2019-07-08 11:10:09 +03:00
коммит произвёл Miguel de la Cruz
родитель f08f7f77c3
Коммит 956c8930f5
5 изменённых файлов: 40 добавлений и 37 удалений

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

@@ -113,14 +113,12 @@ func (a *App) ExportVersion(writer io.Writer) *model.AppError {
func (a *App) ExportAllTeams(writer io.Writer) *model.AppError { func (a *App) ExportAllTeams(writer io.Writer) *model.AppError {
afterId := strings.Repeat("0", 26) afterId := strings.Repeat("0", 26)
for { for {
result := <-a.Srv.Store.Team().GetAllForExportAfter(1000, afterId) teams, err := a.Srv.Store.Team().GetAllForExportAfter(1000, afterId)
if result.Err != nil { if err != nil {
return result.Err return err
} }
teams := result.Data.([]*model.TeamForExport)
if len(teams) == 0 { if len(teams) == 0 {
break break
} }

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

@@ -976,30 +976,27 @@ func (s SqlTeamStore) AnalyticsGetTeamCountForScheme(schemeId string) store.Stor
}) })
} }
func (s SqlTeamStore) GetAllForExportAfter(limit int, afterId string) store.StoreChannel { func (s SqlTeamStore) GetAllForExportAfter(limit int, afterId string) ([]*model.TeamForExport, *model.AppError) {
return store.Do(func(result *store.StoreResult) { var data []*model.TeamForExport
var data []*model.TeamForExport if _, err := s.GetReplica().Select(&data, `
if _, err := s.GetReplica().Select(&data, ` SELECT
SELECT Teams.*,
Teams.*, Schemes.Name as SchemeName
Schemes.Name as SchemeName FROM
FROM Teams
Teams LEFT JOIN
LEFT JOIN Schemes ON Teams.SchemeId = Schemes.Id
Schemes ON Teams.SchemeId = Schemes.Id WHERE
WHERE Teams.Id > :AfterId
Teams.Id > :AfterId ORDER BY
ORDER BY Id
Id LIMIT
LIMIT :Limit`,
:Limit`, map[string]interface{}{"AfterId": afterId, "Limit": limit}); err != nil {
map[string]interface{}{"AfterId": afterId, "Limit": limit}); err != nil { return nil, model.NewAppError("SqlTeamStore.GetAllTeams", "store.sql_team.get_all.app_error", nil, err.Error(), http.StatusInternalServerError)
result.Err = model.NewAppError("SqlTeamStore.GetAllTeams", "store.sql_team.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) }
return
}
result.Data = data return data, nil
})
} }
func (s SqlTeamStore) GetUserTeamIds(userId string, allowFromCache bool) store.StoreChannel { func (s SqlTeamStore) GetUserTeamIds(userId string, allowFromCache bool) store.StoreChannel {

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

@@ -120,7 +120,7 @@ type TeamStore interface {
ResetAllTeamSchemes() StoreChannel ResetAllTeamSchemes() StoreChannel
ClearAllCustomRoleAssignments() StoreChannel ClearAllCustomRoleAssignments() StoreChannel
AnalyticsGetTeamCountForScheme(schemeId string) StoreChannel AnalyticsGetTeamCountForScheme(schemeId string) StoreChannel
GetAllForExportAfter(limit int, afterId string) StoreChannel GetAllForExportAfter(limit int, afterId string) ([]*model.TeamForExport, *model.AppError)
GetTeamMembersForExport(userId string) ([]*model.TeamMemberForExport, *model.AppError) GetTeamMembersForExport(userId string) ([]*model.TeamMemberForExport, *model.AppError)
UserBelongsToTeams(userId string, teamIds []string) StoreChannel UserBelongsToTeams(userId string, teamIds []string) StoreChannel
GetUserTeamIds(userId string, allowFromCache bool) StoreChannel GetUserTeamIds(userId string, allowFromCache bool) StoreChannel

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

@@ -147,19 +147,28 @@ func (_m *TeamStore) GetAll() ([]*model.Team, *model.AppError) {
} }
// GetAllForExportAfter provides a mock function with given fields: limit, afterId // GetAllForExportAfter provides a mock function with given fields: limit, afterId
func (_m *TeamStore) GetAllForExportAfter(limit int, afterId string) store.StoreChannel { func (_m *TeamStore) GetAllForExportAfter(limit int, afterId string) ([]*model.TeamForExport, *model.AppError) {
ret := _m.Called(limit, afterId) ret := _m.Called(limit, afterId)
var r0 store.StoreChannel var r0 []*model.TeamForExport
if rf, ok := ret.Get(0).(func(int, string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(int, string) []*model.TeamForExport); 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.TeamForExport)
} }
} }
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
} }
// GetAllPage provides a mock function with given fields: offset, limit // GetAllPage provides a mock function with given fields: offset, limit

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

@@ -1611,9 +1611,8 @@ func testTeamStoreGetAllForExportAfter(t *testing.T, ss store.Store) {
_, err := ss.Team().Save(&t1) _, err := ss.Team().Save(&t1)
require.Nil(t, err) require.Nil(t, err)
r1 := <-ss.Team().GetAllForExportAfter(10000, strings.Repeat("0", 26)) d1, err := ss.Team().GetAllForExportAfter(10000, strings.Repeat("0", 26))
assert.Nil(t, r1.Err) assert.Nil(t, err)
d1 := r1.Data.([]*model.TeamForExport)
found := false found := false
for _, team := range d1 { for _, team := range d1 {