diff --git a/backend/internal/service/conversation_service.go b/backend/internal/service/conversation_service.go index 92013317..48a63a1b 100644 --- a/backend/internal/service/conversation_service.go +++ b/backend/internal/service/conversation_service.go @@ -1401,6 +1401,13 @@ func conversationFilterBuildClause(attribute, expression string, expressionArgs if !conversationFilterOperatorAllowed(operator, allowedOperators) { return "", nil, fmt.Errorf("Invalid operator. The allowed operators for %s are [%s].", attribute, strings.Join(allowedOperators, ",")) } + if attribute == "status" && operator == "equal_to" { + for _, value := range values { + if strings.EqualFold(strings.TrimSpace(value), "all") { + return "1 = 1", append([]any{}, expressionArgs...), nil + } + } + } if operator == "is_present" { return expression + " IS NOT NULL", append([]any{}, expressionArgs...), nil } diff --git a/backend/internal/service/coverage27_test.go b/backend/internal/service/coverage27_test.go index 473a6159..5cebace5 100644 --- a/backend/internal/service/coverage27_test.go +++ b/backend/internal/service/coverage27_test.go @@ -592,6 +592,13 @@ func TestConversationFilterBuildClause_EqualTo_Cov27(t *testing.T) { assert.Contains(t, clause, "IN") } +func TestConversationFilterBuildClause_AllStatus_Cov27(t *testing.T) { + clause, args, err := conversationFilterBuildClause("status", "conversations.status", nil, "equal_to", []string{"open", "all"}, []string{"equal_to"}, false) + require.NoError(t, err) + assert.Equal(t, "1 = 1", clause) + assert.Empty(t, args) +} + func TestConversationFilterBuildClause_NotEqualTo_Cov27(t *testing.T) { clause, _, err := conversationFilterBuildClause("status", "conversations.status", nil, "not_equal_to", []string{"open"}, []string{"not_equal_to"}, false) require.NoError(t, err)