summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/post.go2
-rw-r--r--model/post_list.go7
-rw-r--r--model/post_list_test.go22
3 files changed, 31 insertions, 0 deletions
diff --git a/app/post.go b/app/post.go
index 4d91e8122..5e97f4443 100644
--- a/app/post.go
+++ b/app/post.go
@@ -645,6 +645,8 @@ func (a *App) SearchPostsInTeam(terms string, userId string, teamId string, isOr
}
}
+ posts.SortByCreateAt()
+
return posts, nil
}
}
diff --git a/model/post_list.go b/model/post_list.go
index b3caadafd..018f7d14f 100644
--- a/model/post_list.go
+++ b/model/post_list.go
@@ -6,6 +6,7 @@ package model
import (
"encoding/json"
"io"
+ "sort"
)
type PostList struct {
@@ -82,6 +83,12 @@ func (o *PostList) Extend(other *PostList) {
}
}
+func (o *PostList) SortByCreateAt() {
+ sort.Slice(o.Order, func(i, j int) bool {
+ return o.Posts[o.Order[i]].CreateAt > o.Posts[o.Order[j]].CreateAt
+ })
+}
+
func (o *PostList) Etag() string {
id := "0"
diff --git a/model/post_list_test.go b/model/post_list_test.go
index 56886d4fd..b2ecf3bd5 100644
--- a/model/post_list_test.go
+++ b/model/post_list_test.go
@@ -6,6 +6,8 @@ package model
import (
"strings"
"testing"
+
+ "github.com/stretchr/testify/assert"
)
func TestPostListJson(t *testing.T) {
@@ -68,3 +70,23 @@ func TestPostListExtend(t *testing.T) {
t.Fatal("extending l2 again changed l2")
}
}
+
+func TestPostListSortByCreateAt(t *testing.T) {
+ pl := PostList{}
+ p1 := &Post{Id: NewId(), Message: NewId(), CreateAt: 2}
+ pl.AddPost(p1)
+ p2 := &Post{Id: NewId(), Message: NewId(), CreateAt: 1}
+ pl.AddPost(p2)
+ p3 := &Post{Id: NewId(), Message: NewId(), CreateAt: 3}
+ pl.AddPost(p3)
+
+ pl.AddOrder(p1.Id)
+ pl.AddOrder(p2.Id)
+ pl.AddOrder(p3.Id)
+
+ pl.SortByCreateAt()
+
+ assert.EqualValues(t, pl.Order[0], p3.Id)
+ assert.EqualValues(t, pl.Order[1], p1.Id)
+ assert.EqualValues(t, pl.Order[2], p2.Id)
+}