Add quey to thread message search
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
46
tests/messaging/message_search_test.go
Normal file
46
tests/messaging/message_search_test.go
Normal 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()
|
||||
}
|
||||
Reference in New Issue
Block a user