fix: handle all status in conversation filters
Build and publish Docker images / Build and publish images (push) Failing after 6m40s
Build and publish Docker images / Build and publish images (push) Failing after 6m40s
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user