diff options
author | George Goldberg <george@gberg.me> | 2017-10-24 19:27:15 +0100 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-10-24 14:27:15 -0400 |
commit | 61b023f5dfe796c7ba8183292853f01817016d14 (patch) | |
tree | aa0f659b7c913a53737e3954c8568f682601d7fc | |
parent | 2a2af0e390e0323e02919598881783f38131b5ee (diff) | |
download | chat-61b023f5dfe796c7ba8183292853f01817016d14.tar.gz chat-61b023f5dfe796c7ba8183292853f01817016d14.tar.bz2 chat-61b023f5dfe796c7ba8183292853f01817016d14.zip |
PLT-7822: Fix search order for SQL search backend. (#7704)
-rw-r--r-- | app/post.go | 2 | ||||
-rw-r--r-- | model/post_list.go | 7 | ||||
-rw-r--r-- | model/post_list_test.go | 22 |
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) +} |