fix(search): align search page size

This commit is contained in:
2026-06-07 09:46:59 +08:00
parent ff2e5114a5
commit 3c437dd94c
3 changed files with 17 additions and 13 deletions
+6 -8
View File
@@ -70,7 +70,7 @@ func NewSearchHandler(svc *search.SearchService, dbs ...*gorm.DB) *SearchHandler
// @Param sort_by query string false "Sort field (created_at,last_activity_at,updated_at)" default(created_at)
// @Param sort_order query string false "Sort order (asc,desc)" default(desc)
// @Param page query int false "Page number" default(1)
// @Param per_page query int false "Items per page" default(25)
// @Param per_page query int false "Ignored for Chatwoot parity; search results are fixed at 15 per page" default(15)
// @Success 200 {object} search.SearchResponse
// @Failure 400 {object} model.ErrorResponse
// @Failure 401 {object} model.ErrorResponse
@@ -120,7 +120,7 @@ func (h *SearchHandler) GlobalSearch(c *gin.Context) {
// @Param sort_by query string false "Sort field (created_at,last_activity_at,updated_at)" default(created_at)
// @Param sort_order query string false "Sort order (asc,desc)" default(desc)
// @Param page query int false "Page number" default(1)
// @Param per_page query int false "Items per page" default(25)
// @Param per_page query int false "Ignored for Chatwoot parity; search results are fixed at 15 per page" default(15)
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} model.ErrorResponse
// @Failure 401 {object} model.ErrorResponse
@@ -171,7 +171,7 @@ func (h *SearchHandler) SearchConversations(c *gin.Context) {
// @Param sort_by query string false "Sort field (created_at,updated_at)" default(created_at)
// @Param sort_order query string false "Sort order (asc,desc)" default(desc)
// @Param page query int false "Page number" default(1)
// @Param per_page query int false "Items per page" default(25)
// @Param per_page query int false "Ignored for Chatwoot parity; search results are fixed at 15 per page" default(15)
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} model.ErrorResponse
// @Failure 401 {object} model.ErrorResponse
@@ -216,7 +216,7 @@ func (h *SearchHandler) SearchMessages(c *gin.Context) {
// @Param sort_by query string false "Sort field (created_at,updated_at,name)" default(created_at)
// @Param sort_order query string false "Sort order (asc,desc)" default(desc)
// @Param page query int false "Page number" default(1)
// @Param per_page query int false "Items per page" default(25)
// @Param per_page query int false "Ignored for Chatwoot parity; search results are fixed at 15 per page" default(15)
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} model.ErrorResponse
// @Failure 401 {object} model.ErrorResponse
@@ -264,7 +264,7 @@ func (h *SearchHandler) SearchContacts(c *gin.Context) {
// @Param sort_by query string false "Sort field (created_at,updated_at)" default(created_at)
// @Param sort_order query string false "Sort order (asc,desc)" default(desc)
// @Param page query int false "Page number" default(1)
// @Param per_page query int false "Items per page" default(25)
// @Param per_page query int false "Ignored for Chatwoot parity; search results are fixed at 15 per page" default(15)
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} model.ErrorResponse
// @Failure 401 {object} model.ErrorResponse
@@ -307,9 +307,7 @@ func parseChatwootSearchFilter(c *gin.Context) search.SearchFilter {
if userID := getUserID(c); userID != 0 {
filter.CurrentUserID = &userID
}
if c.Query("per_page") == "" {
filter.PerPage = chatwootSearchPerPage
}
filter.PerPage = chatwootSearchPerPage
return filter
}
@@ -176,6 +176,8 @@ func TestSearchHandler_GlobalSearch_WithFilterParams(t *testing.T) {
payload, ok := body["payload"].(map[string]interface{})
require.True(t, ok)
assert.Len(t, payload["conversations"], 1)
require.NotNil(t, repo.msgFilter)
assert.Equal(t, 15, repo.msgFilter.PerPage)
}
func TestSearchHandler_GlobalSearch_UsesReferenceResultTypes(t *testing.T) {
@@ -323,7 +325,7 @@ func TestSearchHandler_SearchMessages_Success(t *testing.T) {
router := setupSearchHandlerRouter(handler)
w := httptest.NewRecorder()
req := httptest.NewRequest("GET", "/api/v1/accounts/1/search/messages?q=hello&page=1", nil)
req := httptest.NewRequest("GET", "/api/v1/accounts/1/search/messages?q=hello&page=1&per_page=99", nil)
router.ServeHTTP(w, req)
assert.Equal(t, http.StatusOK, w.Code)