3
0

Add quey to thread message search

This commit is contained in:
Tomaž Jerman
2019-12-05 14:49:29 +01:00
parent 660b731b97
commit 6950a37305
2 changed files with 51 additions and 0 deletions

View File

@@ -220,6 +220,11 @@ func (r *message) FindThreads(filter types.MessageFilter) (set types.MessageSet,
// Prepare the actual message selector
query := r.query().Join("originals ON (original_id IN (id, reply_to))")
if f.Query != "" {
q := "%" + strings.ToLower(f.Query) + "%"
query = query.Where(squirrel.Like{"LOWER(m.message)": q})
}
// And create CTE
cte := squirrel.ConcatExpr("WITH originals AS (", originals, ") ", query)

View File

@@ -0,0 +1,46 @@
package messaging
import (
"net/http"
"testing"
"github.com/cortezaproject/corteza-server/tests/helpers"
jsonpath "github.com/steinfletcher/apitest-jsonpath"
)
func TestMessageSearch(t *testing.T) {
h := newHelper(t)
ch := h.repoMakePublicCh()
h.repoMakeMessage("searchTestMessageA", ch, h.cUser)
h.repoMakeMessage("searchTestMessageB", ch, h.cUser)
h.apiInit().
Get("/search/messages").
Query("query", "searchTestMessageA").
Expect(t).
Status(http.StatusOK).
Assert(helpers.AssertNoErrors).
Assert(jsonpath.Len(`$.response`, 1)).
End()
}
func TestMessageThreadSearch(t *testing.T) {
h := newHelper(t)
ch := h.repoMakePublicCh()
msgA := h.repoMakeMessage("searchTestMessageThreadA", ch, h.cUser)
h.apiMessageCreateReply("thrA", msgA)
msgB := h.repoMakeMessage("searchTestMessageThreadB", ch, h.cUser)
h.apiMessageCreateReply("thrB", msgB)
h.apiInit().
Get("/search/threads").
Query("query", "searchTestMessageThreadA").
Expect(t).
Status(http.StatusOK).
Assert(helpers.AssertNoErrors).
Assert(jsonpath.Len(`$.response`, 1)).
End()
}