GH-10760: Migrate Post.Delete to sync by default (#10830)

Этот коммит содержится в:
PR
2019-05-13 04:07:15 -07:00
коммит произвёл Jesús Espino
родитель 480fffd3cc
Коммит b3aa3d4567
5 изменённых файлов: 38 добавлений и 32 удалений

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

@@ -735,8 +735,8 @@ func (a *App) DeletePost(postId, deleteByID string) (*model.Post, *model.AppErro
return nil, err return nil, err
} }
if result := <-a.Srv.Store.Post().Delete(postId, model.GetMillis(), deleteByID); result.Err != nil { if err := a.Srv.Store.Post().Delete(postId, model.GetMillis(), deleteByID); err != nil {
return nil, result.Err return nil, err
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_POST_DELETED, "", post.ChannelId, "", nil) message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_POST_DELETED, "", post.ChannelId, "", nil)

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

@@ -399,26 +399,26 @@ func (s *SqlPostStore) GetEtag(channelId string, allowFromCache bool) store.Stor
}) })
} }
func (s *SqlPostStore) Delete(postId string, time int64, deleteByID string) store.StoreChannel { func (s *SqlPostStore) Delete(postId string, time int64, deleteByID string) *model.AppError {
return store.Do(func(result *store.StoreResult) {
appErr := func(errMsg string) *model.AppError { appErr := func(errMsg string) *model.AppError {
return model.NewAppError("SqlPostStore.Delete", "store.sql_post.delete.app_error", nil, "id="+postId+", err="+errMsg, http.StatusInternalServerError) return model.NewAppError("SqlPostStore.Delete", "store.sql_post.delete.app_error", nil, "id="+postId+", err="+errMsg, http.StatusInternalServerError)
} }
var post model.Post var post model.Post
err := s.GetReplica().SelectOne(&post, "SELECT * FROM Posts WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": postId}) err := s.GetReplica().SelectOne(&post, "SELECT * FROM Posts WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": postId})
if err != nil { if err != nil {
result.Err = appErr(err.Error()) return appErr(err.Error())
} }
post.Props[model.POST_PROPS_DELETE_BY] = deleteByID post.Props[model.POST_PROPS_DELETE_BY] = deleteByID
_, err = s.GetMaster().Exec("UPDATE Posts SET DeleteAt = :DeleteAt, UpdateAt = :UpdateAt, Props = :Props WHERE Id = :Id OR RootId = :RootId", map[string]interface{}{"DeleteAt": time, "UpdateAt": time, "Id": postId, "RootId": postId, "Props": model.StringInterfaceToJson(post.Props)}) _, err = s.GetMaster().Exec("UPDATE Posts SET DeleteAt = :DeleteAt, UpdateAt = :UpdateAt, Props = :Props WHERE Id = :Id OR RootId = :RootId", map[string]interface{}{"DeleteAt": time, "UpdateAt": time, "Id": postId, "RootId": postId, "Props": model.StringInterfaceToJson(post.Props)})
if err != nil { if err != nil {
result.Err = appErr(err.Error()) return appErr(err.Error())
} }
})
return nil
} }
func (s *SqlPostStore) permanentDelete(postId string) store.StoreChannel { func (s *SqlPostStore) permanentDelete(postId string) store.StoreChannel {

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

@@ -215,7 +215,7 @@ type PostStore interface {
Update(newPost *model.Post, oldPost *model.Post) StoreChannel Update(newPost *model.Post, oldPost *model.Post) StoreChannel
Get(id string) StoreChannel Get(id string) StoreChannel
GetSingle(id string) StoreChannel GetSingle(id string) StoreChannel
Delete(postId string, time int64, deleteByID string) StoreChannel Delete(postId string, time int64, deleteByID string) *model.AppError
PermanentDeleteByUser(userId string) StoreChannel PermanentDeleteByUser(userId string) StoreChannel
PermanentDeleteByChannel(channelId string) StoreChannel PermanentDeleteByChannel(channelId string) StoreChannel
GetPosts(channelId string, offset int, limit int, allowFromCache bool) StoreChannel GetPosts(channelId string, offset int, limit int, allowFromCache bool) StoreChannel

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

@@ -67,15 +67,15 @@ func (_m *PostStore) ClearCaches() {
} }
// Delete provides a mock function with given fields: postId, time, deleteByID // Delete provides a mock function with given fields: postId, time, deleteByID
func (_m *PostStore) Delete(postId string, time int64, deleteByID string) store.StoreChannel { func (_m *PostStore) Delete(postId string, time int64, deleteByID string) *model.AppError {
ret := _m.Called(postId, time, deleteByID) ret := _m.Called(postId, time, deleteByID)
var r0 store.StoreChannel var r0 *model.AppError
if rf, ok := ret.Get(0).(func(string, int64, string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(string, int64, string) *model.AppError); ok {
r0 = rf(postId, time, deleteByID) r0 = rf(postId, time, deleteByID)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel) r0 = ret.Get(0).(*model.AppError)
} }
} }

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

@@ -314,8 +314,8 @@ func testPostStoreDelete(t *testing.T, ss store.Store) {
} }
} }
if r2 := <-ss.Post().Delete(o1.Id, model.GetMillis(), deleteByID); r2.Err != nil { if err := ss.Post().Delete(o1.Id, model.GetMillis(), deleteByID); err != nil {
t.Fatal(r2.Err) t.Fatal(err)
} }
r5 := <-ss.Post().GetPostsCreatedAt(o1.ChannelId, o1.CreateAt) r5 := <-ss.Post().GetPostsCreatedAt(o1.ChannelId, o1.CreateAt)
@@ -351,8 +351,8 @@ func testPostStoreDelete1Level(t *testing.T, ss store.Store) {
o2.RootId = o1.Id o2.RootId = o1.Id
o2 = (<-ss.Post().Save(o2)).Data.(*model.Post) o2 = (<-ss.Post().Save(o2)).Data.(*model.Post)
if r2 := <-ss.Post().Delete(o1.Id, model.GetMillis(), ""); r2.Err != nil { if err := ss.Post().Delete(o1.Id, model.GetMillis(), ""); err != nil {
t.Fatal(r2.Err) t.Fatal(err)
} }
if r3 := (<-ss.Post().Get(o1.Id)); r3.Err == nil { if r3 := (<-ss.Post().Get(o1.Id)); r3.Err == nil {
@@ -393,8 +393,8 @@ func testPostStoreDelete2Level(t *testing.T, ss store.Store) {
o4.Message = "zz" + model.NewId() + "b" o4.Message = "zz" + model.NewId() + "b"
o4 = (<-ss.Post().Save(o4)).Data.(*model.Post) o4 = (<-ss.Post().Save(o4)).Data.(*model.Post)
if r2 := <-ss.Post().Delete(o1.Id, model.GetMillis(), ""); r2.Err != nil { if err := ss.Post().Delete(o1.Id, model.GetMillis(), ""); err != nil {
t.Fatal(r2.Err) t.Fatal(err)
} }
if r3 := (<-ss.Post().Get(o1.Id)); r3.Err == nil { if r3 := (<-ss.Post().Get(o1.Id)); r3.Err == nil {
@@ -526,7 +526,9 @@ func testPostStoreGetWithChildren(t *testing.T, ss store.Store) {
} }
} }
store.Must(ss.Post().Delete(o3.Id, model.GetMillis(), "")) if err := ss.Post().Delete(o3.Id, model.GetMillis(), ""); err != nil {
t.Fatal(err)
}
if r2 := <-ss.Post().Get(o1.Id); r2.Err != nil { if r2 := <-ss.Post().Get(o1.Id); r2.Err != nil {
t.Fatal(r2.Err) t.Fatal(r2.Err)
@@ -537,7 +539,9 @@ func testPostStoreGetWithChildren(t *testing.T, ss store.Store) {
} }
} }
store.Must(ss.Post().Delete(o2.Id, model.GetMillis(), "")) if err := ss.Post().Delete(o2.Id, model.GetMillis(), ""); err != nil {
t.Fatal(err)
}
if r3 := <-ss.Post().Get(o1.Id); r3.Err != nil { if r3 := <-ss.Post().Get(o1.Id); r3.Err != nil {
t.Fatal(r3.Err) t.Fatal(r3.Err)
@@ -1726,7 +1730,9 @@ func testPostStoreGetPostsByIds(t *testing.T, ss store.Store) {
t.Fatalf("Expected 3 posts in results. Got %v", len(ro4)) t.Fatalf("Expected 3 posts in results. Got %v", len(ro4))
} }
store.Must(ss.Post().Delete(ro1.Id, model.GetMillis(), "")) if err := ss.Post().Delete(ro1.Id, model.GetMillis(), ""); err != nil {
t.Fatal(err)
}
if ro5 := store.Must(ss.Post().GetPostsByIds(postIds)).([]*model.Post); len(ro5) != 3 { if ro5 := store.Must(ss.Post().GetPostsByIds(postIds)).([]*model.Post); len(ro5) != 3 {
t.Fatalf("Expected 3 posts in results. Got %v", len(ro5)) t.Fatalf("Expected 3 posts in results. Got %v", len(ro5))