MM-15847 migrating getFlaggedPosts to sync by default (#10995)
Этот коммит содержится в:
коммит произвёл
Hanzei
родитель
28d668cd91
Коммит
9f4c703f1e
@@ -641,11 +641,7 @@ func (a *App) GetPostThread(postId string) (*model.PostList, *model.AppError) {
|
||||
}
|
||||
|
||||
func (a *App) GetFlaggedPosts(userId string, offset int, limit int) (*model.PostList, *model.AppError) {
|
||||
result := <-a.Srv.Store.Post().GetFlaggedPosts(userId, offset, limit)
|
||||
if result.Err != nil {
|
||||
return nil, result.Err
|
||||
}
|
||||
return result.Data.(*model.PostList), nil
|
||||
return a.Srv.Store.Post().GetFlaggedPosts(userId, offset, limit)
|
||||
}
|
||||
|
||||
func (a *App) GetFlaggedPostsForTeam(userId, teamId string, offset int, limit int) (*model.PostList, *model.AppError) {
|
||||
|
||||
@@ -179,22 +179,20 @@ func (s *SqlPostStore) Overwrite(post *model.Post) (*model.Post, *model.AppError
|
||||
return post, nil
|
||||
}
|
||||
|
||||
func (s *SqlPostStore) GetFlaggedPosts(userId string, offset int, limit int) store.StoreChannel {
|
||||
return store.Do(func(result *store.StoreResult) {
|
||||
pl := model.NewPostList()
|
||||
func (s *SqlPostStore) GetFlaggedPosts(userId string, offset int, limit int) (*model.PostList, *model.AppError) {
|
||||
pl := model.NewPostList()
|
||||
|
||||
var posts []*model.Post
|
||||
if _, err := s.GetReplica().Select(&posts, "SELECT * FROM Posts WHERE Id IN (SELECT Name FROM Preferences WHERE UserId = :UserId AND Category = :Category) AND DeleteAt = 0 ORDER BY CreateAt DESC LIMIT :Limit OFFSET :Offset", map[string]interface{}{"UserId": userId, "Category": model.PREFERENCE_CATEGORY_FLAGGED_POST, "Offset": offset, "Limit": limit}); err != nil {
|
||||
result.Err = model.NewAppError("SqlPostStore.GetFlaggedPosts", "store.sql_post.get_flagged_posts.app_error", nil, err.Error(), http.StatusInternalServerError)
|
||||
} else {
|
||||
for _, post := range posts {
|
||||
pl.AddPost(post)
|
||||
pl.AddOrder(post.Id)
|
||||
}
|
||||
}
|
||||
var posts []*model.Post
|
||||
if _, err := s.GetReplica().Select(&posts, "SELECT * FROM Posts WHERE Id IN (SELECT Name FROM Preferences WHERE UserId = :UserId AND Category = :Category) AND DeleteAt = 0 ORDER BY CreateAt DESC LIMIT :Limit OFFSET :Offset", map[string]interface{}{"UserId": userId, "Category": model.PREFERENCE_CATEGORY_FLAGGED_POST, "Offset": offset, "Limit": limit}); err != nil {
|
||||
return nil, model.NewAppError("SqlPostStore.GetFlaggedPosts", "store.sql_post.get_flagged_posts.app_error", nil, err.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
|
||||
result.Data = pl
|
||||
})
|
||||
for _, post := range posts {
|
||||
pl.AddPost(post)
|
||||
pl.AddOrder(post.Id)
|
||||
}
|
||||
|
||||
return pl, nil
|
||||
}
|
||||
|
||||
func (s *SqlPostStore) GetFlaggedPostsForTeam(userId, teamId string, offset int, limit int) (*model.PostList, *model.AppError) {
|
||||
|
||||
@@ -218,7 +218,7 @@ type PostStore interface {
|
||||
PermanentDeleteByUser(userId string) StoreChannel
|
||||
PermanentDeleteByChannel(channelId string) *model.AppError
|
||||
GetPosts(channelId string, offset int, limit int, allowFromCache bool) StoreChannel
|
||||
GetFlaggedPosts(userId string, offset int, limit int) StoreChannel
|
||||
GetFlaggedPosts(userId string, offset int, limit int) (*model.PostList, *model.AppError)
|
||||
GetFlaggedPostsForTeam(userId, teamId string, offset int, limit int) (*model.PostList, *model.AppError)
|
||||
GetFlaggedPostsForChannel(userId, channelId string, offset int, limit int) StoreChannel
|
||||
GetPostsBefore(channelId string, postId string, numPosts int, offset int) StoreChannel
|
||||
|
||||
@@ -140,19 +140,28 @@ func (_m *PostStore) GetEtag(channelId string, allowFromCache bool) store.StoreC
|
||||
}
|
||||
|
||||
// GetFlaggedPosts provides a mock function with given fields: userId, offset, limit
|
||||
func (_m *PostStore) GetFlaggedPosts(userId string, offset int, limit int) store.StoreChannel {
|
||||
func (_m *PostStore) GetFlaggedPosts(userId string, offset int, limit int) (*model.PostList, *model.AppError) {
|
||||
ret := _m.Called(userId, offset, limit)
|
||||
|
||||
var r0 store.StoreChannel
|
||||
if rf, ok := ret.Get(0).(func(string, int, int) store.StoreChannel); ok {
|
||||
var r0 *model.PostList
|
||||
if rf, ok := ret.Get(0).(func(string, int, int) *model.PostList); ok {
|
||||
r0 = rf(userId, offset, limit)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(store.StoreChannel)
|
||||
r0 = ret.Get(0).(*model.PostList)
|
||||
}
|
||||
}
|
||||
|
||||
return r0
|
||||
var r1 *model.AppError
|
||||
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
|
||||
r1 = rf(userId, offset, limit)
|
||||
} else {
|
||||
if ret.Get(1) != nil {
|
||||
r1 = ret.Get(1).(*model.AppError)
|
||||
}
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// GetFlaggedPostsForChannel provides a mock function with given fields: userId, channelId, offset, limit
|
||||
|
||||
@@ -1378,7 +1378,8 @@ func testPostStoreGetFlaggedPostsForTeam(t *testing.T, ss store.Store, s SqlSupp
|
||||
o5 = (<-ss.Post().Save(o5)).Data.(*model.Post)
|
||||
time.Sleep(2 * time.Millisecond)
|
||||
|
||||
r1 := (<-ss.Post().GetFlaggedPosts(o1.ChannelId, 0, 2)).Data.(*model.PostList)
|
||||
r1, err := ss.Post().GetFlaggedPosts(o1.ChannelId, 0, 2)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r1.Order) != 0 {
|
||||
t.Fatal("should be empty")
|
||||
@@ -1532,7 +1533,8 @@ func testPostStoreGetFlaggedPosts(t *testing.T, ss store.Store) {
|
||||
o3 = (<-ss.Post().Save(o3)).Data.(*model.Post)
|
||||
time.Sleep(2 * time.Millisecond)
|
||||
|
||||
r1 := (<-ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)).Data.(*model.PostList)
|
||||
r1, err := ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r1.Order) != 0 {
|
||||
t.Fatal("should be empty")
|
||||
@@ -1547,10 +1549,11 @@ func testPostStoreGetFlaggedPosts(t *testing.T, ss store.Store) {
|
||||
},
|
||||
}
|
||||
|
||||
err := ss.Preference().Save(&preferences)
|
||||
err = ss.Preference().Save(&preferences)
|
||||
require.Nil(t, err)
|
||||
|
||||
r2 := (<-ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)).Data.(*model.PostList)
|
||||
r2, err := ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r2.Order) != 1 {
|
||||
t.Fatal("should have 1 post")
|
||||
@@ -1568,25 +1571,29 @@ func testPostStoreGetFlaggedPosts(t *testing.T, ss store.Store) {
|
||||
err = ss.Preference().Save(&preferences)
|
||||
require.Nil(t, err)
|
||||
|
||||
r3 := (<-ss.Post().GetFlaggedPosts(o1.UserId, 0, 1)).Data.(*model.PostList)
|
||||
r3, err := ss.Post().GetFlaggedPosts(o1.UserId, 0, 1)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r3.Order) != 1 {
|
||||
t.Fatal("should have 1 post")
|
||||
}
|
||||
|
||||
r3 = (<-ss.Post().GetFlaggedPosts(o1.UserId, 1, 1)).Data.(*model.PostList)
|
||||
r3, err = ss.Post().GetFlaggedPosts(o1.UserId, 1, 1)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r3.Order) != 1 {
|
||||
t.Fatal("should have 1 post")
|
||||
}
|
||||
|
||||
r3 = (<-ss.Post().GetFlaggedPosts(o1.UserId, 1000, 10)).Data.(*model.PostList)
|
||||
r3, err = ss.Post().GetFlaggedPosts(o1.UserId, 1000, 10)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r3.Order) != 0 {
|
||||
t.Fatal("should be empty")
|
||||
}
|
||||
|
||||
r4 := (<-ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)).Data.(*model.PostList)
|
||||
r4, err := ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r4.Order) != 2 {
|
||||
t.Fatal("should have 2 posts")
|
||||
@@ -1604,7 +1611,8 @@ func testPostStoreGetFlaggedPosts(t *testing.T, ss store.Store) {
|
||||
err = ss.Preference().Save(&preferences)
|
||||
require.Nil(t, err)
|
||||
|
||||
r4 = (<-ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)).Data.(*model.PostList)
|
||||
r4, err = ss.Post().GetFlaggedPosts(o1.UserId, 0, 2)
|
||||
require.Nil(t, err)
|
||||
|
||||
if len(r4.Order) != 2 {
|
||||
t.Fatal("should have 2 posts")
|
||||
|
||||
Ссылка в новой задаче
Block a user