fix: handle all status in conversation filters
Build and publish Docker images / Build and publish images (push) Failing after 6m40s

This commit is contained in:
2026-09-15 17:39:30 +08:00
parent dc5ace9003
commit e5a894b36b
2 changed files with 14 additions and 0 deletions
@@ -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
}
@@ -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)