GetAllForExportAfter migrated to sync by default. (#11562)

This commit is contained in:
Max Vovshin
2019-07-08 11:10:09 +03:00
committed by Miguel de la Cruz
parent f08f7f77c3
commit 956c8930f5
5 changed files with 40 additions and 37 deletions

View File

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

View File

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

View File

@@ -120,7 +120,7 @@ type TeamStore interface {
ResetAllTeamSchemes() StoreChannel
ClearAllCustomRoleAssignments() 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)
UserBelongsToTeams(userId string, teamIds []string) StoreChannel
GetUserTeamIds(userId string, allowFromCache bool) StoreChannel

View File

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

View File

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