GH-10967 Migrate Post.PermanentDeleteBatch to Sync by default (#11033)

* GH-10967 Migrate Post.PermanentDeleteBatch to Sync by default

* Use require.Nil
Этот коммит содержится в:
Marc Argent
2019-06-10 16:01:57 +01:00
коммит произвёл Jesús Espino
родитель 31d695f951
Коммит 162e06b5df
4 изменённых файлов: 33 добавлений и 29 удалений

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

@@ -1155,8 +1155,7 @@ func (s *SqlPostStore) GetPostsBatchForIndexing(startTime int64, endTime int64,
return posts, nil return posts, nil
} }
func (s *SqlPostStore) PermanentDeleteBatch(endTime int64, limit int64) store.StoreChannel { func (s *SqlPostStore) PermanentDeleteBatch(endTime int64, limit int64) (int64, *model.AppError) {
return store.Do(func(result *store.StoreResult) {
var query string var query string
if s.DriverName() == "postgres" { if s.DriverName() == "postgres" {
query = "DELETE from Posts WHERE Id = any (array (SELECT Id FROM Posts WHERE CreateAt < :EndTime LIMIT :Limit))" query = "DELETE from Posts WHERE Id = any (array (SELECT Id FROM Posts WHERE CreateAt < :EndTime LIMIT :Limit))"
@@ -1166,17 +1165,14 @@ func (s *SqlPostStore) PermanentDeleteBatch(endTime int64, limit int64) store.St
sqlResult, err := s.GetMaster().Exec(query, map[string]interface{}{"EndTime": endTime, "Limit": limit}) sqlResult, err := s.GetMaster().Exec(query, map[string]interface{}{"EndTime": endTime, "Limit": limit})
if err != nil { if err != nil {
result.Err = model.NewAppError("SqlPostStore.PermanentDeleteBatch", "store.sql_post.permanent_delete_batch.app_error", nil, ""+err.Error(), http.StatusInternalServerError) return 0, model.NewAppError("SqlPostStore.PermanentDeleteBatch", "store.sql_post.permanent_delete_batch.app_error", nil, ""+err.Error(), http.StatusInternalServerError)
} else {
rowsAffected, err1 := sqlResult.RowsAffected()
if err1 != nil {
result.Err = model.NewAppError("SqlPostStore.PermanentDeleteBatch", "store.sql_post.permanent_delete_batch.app_error", nil, ""+err.Error(), http.StatusInternalServerError)
result.Data = int64(0)
} else {
result.Data = rowsAffected
} }
rowsAffected, err := sqlResult.RowsAffected()
if err != nil {
return 0, model.NewAppError("SqlPostStore.PermanentDeleteBatch", "store.sql_post.permanent_delete_batch.app_error", nil, ""+err.Error(), http.StatusInternalServerError)
} }
}) return rowsAffected, nil
} }
func (s *SqlPostStore) GetOldest() store.StoreChannel { func (s *SqlPostStore) GetOldest() store.StoreChannel {

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

@@ -235,7 +235,7 @@ type PostStore interface {
Overwrite(post *model.Post) (*model.Post, *model.AppError) Overwrite(post *model.Post) (*model.Post, *model.AppError)
GetPostsByIds(postIds []string) ([]*model.Post, *model.AppError) GetPostsByIds(postIds []string) ([]*model.Post, *model.AppError)
GetPostsBatchForIndexing(startTime int64, endTime int64, limit int) ([]*model.PostForIndexing, *model.AppError) GetPostsBatchForIndexing(startTime int64, endTime int64, limit int) ([]*model.PostForIndexing, *model.AppError)
PermanentDeleteBatch(endTime int64, limit int64) StoreChannel PermanentDeleteBatch(endTime int64, limit int64) (int64, *model.AppError)
GetOldest() StoreChannel GetOldest() StoreChannel
GetMaxPostSize() int GetMaxPostSize() int
GetParentsForExportAfter(limit int, afterId string) ([]*model.PostForExport, *model.AppError) GetParentsForExportAfter(limit int, afterId string) ([]*model.PostForExport, *model.AppError)

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

@@ -523,19 +523,26 @@ func (_m *PostStore) Overwrite(post *model.Post) (*model.Post, *model.AppError)
} }
// PermanentDeleteBatch provides a mock function with given fields: endTime, limit // PermanentDeleteBatch provides a mock function with given fields: endTime, limit
func (_m *PostStore) PermanentDeleteBatch(endTime int64, limit int64) store.StoreChannel { func (_m *PostStore) PermanentDeleteBatch(endTime int64, limit int64) (int64, *model.AppError) {
ret := _m.Called(endTime, limit) ret := _m.Called(endTime, limit)
var r0 store.StoreChannel var r0 int64
if rf, ok := ret.Get(0).(func(int64, int64) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(int64, int64) int64); ok {
r0 = rf(endTime, limit) r0 = rf(endTime, limit)
} else { } else {
if ret.Get(0) != nil { r0 = ret.Get(0).(int64)
r0 = ret.Get(0).(store.StoreChannel) }
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(int64, int64) *model.AppError); ok {
r1 = rf(endTime, limit)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
} }
} }
return r0 return r0, r1
} }
// PermanentDeleteByChannel provides a mock function with given fields: channelId // PermanentDeleteByChannel provides a mock function with given fields: channelId

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

@@ -2035,7 +2035,8 @@ func testPostStorePermanentDeleteBatch(t *testing.T, ss store.Store) {
o3.CreateAt = 100000 o3.CreateAt = 100000
o3 = (<-ss.Post().Save(o3)).Data.(*model.Post) o3 = (<-ss.Post().Save(o3)).Data.(*model.Post)
store.Must(ss.Post().PermanentDeleteBatch(2000, 1000)) _, err := ss.Post().PermanentDeleteBatch(2000, 1000)
require.Nil(t, err)
if _, err := ss.Post().Get(o1.Id); err == nil { if _, err := ss.Post().Get(o1.Id); err == nil {
t.Fatalf("Should have not found post 1 after purge") t.Fatalf("Should have not found post 1 after purge")