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
}
if result := <-a.Srv.Store.Post().Delete(postId, model.GetMillis(), deleteByID); result.Err != nil {
return nil, result.Err
if err := a.Srv.Store.Post().Delete(postId, model.GetMillis(), deleteByID); err != nil {
return nil, err
}
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 {
return store.Do(func(result *store.StoreResult) {
func (s *SqlPostStore) Delete(postId string, time int64, deleteByID 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)
}
appErr := func(errMsg string) *model.AppError {
return model.NewAppError("SqlPostStore.Delete", "store.sql_post.delete.app_error", nil, "id="+postId+", err="+errMsg, http.StatusInternalServerError)
}
var post model.Post
err := s.GetReplica().SelectOne(&post, "SELECT * FROM Posts WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": postId})
if err != nil {
result.Err = appErr(err.Error())
}
var post model.Post
err := s.GetReplica().SelectOne(&post, "SELECT * FROM Posts WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": postId})
if err != nil {
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)})
if err != nil {
result.Err = appErr(err.Error())
}
})
_, 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 {
return appErr(err.Error())
}
return nil
}
func (s *SqlPostStore) permanentDelete(postId string) store.StoreChannel {

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

@@ -215,7 +215,7 @@ type PostStore interface {
Update(newPost *model.Post, oldPost *model.Post) StoreChannel
Get(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
PermanentDeleteByChannel(channelId string) 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
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)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(string, int64, string) store.StoreChannel); ok {
var r0 *model.AppError
if rf, ok := ret.Get(0).(func(string, int64, string) *model.AppError); ok {
r0 = rf(postId, time, deleteByID)
} else {
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 {
t.Fatal(r2.Err)
if err := ss.Post().Delete(o1.Id, model.GetMillis(), deleteByID); err != nil {
t.Fatal(err)
}
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 = (<-ss.Post().Save(o2)).Data.(*model.Post)
if r2 := <-ss.Post().Delete(o1.Id, model.GetMillis(), ""); r2.Err != nil {
t.Fatal(r2.Err)
if err := ss.Post().Delete(o1.Id, model.GetMillis(), ""); err != nil {
t.Fatal(err)
}
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 = (<-ss.Post().Save(o4)).Data.(*model.Post)
if r2 := <-ss.Post().Delete(o1.Id, model.GetMillis(), ""); r2.Err != nil {
t.Fatal(r2.Err)
if err := ss.Post().Delete(o1.Id, model.GetMillis(), ""); err != nil {
t.Fatal(err)
}
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 {
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 {
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))
}
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 {
t.Fatalf("Expected 3 posts in results. Got %v", len(ro5))