From d1ae4fe64e08e554b992ed1d716b7c6e74261ed4 Mon Sep 17 00:00:00 2001 From: Hein Date: Sun, 1 Mar 2026 13:21:38 +0200 Subject: [PATCH] refactor(handler): unify filter operator handling for consistency --- pkg/resolvespec/handler.go | 24 ++++++++++++------------ pkg/restheadspec/handler.go | 12 ++++++------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/pkg/resolvespec/handler.go b/pkg/resolvespec/handler.go index dc87539..eff8f30 100644 --- a/pkg/resolvespec/handler.go +++ b/pkg/resolvespec/handler.go @@ -1521,22 +1521,22 @@ func (h *Handler) buildFilterCondition(filter common.FilterOption) (conditionStr var args []interface{} switch filter.Operator { - case "eq": + case "eq", "=": condition = fmt.Sprintf("%s = ?", filter.Column) args = []interface{}{filter.Value} - case "neq": + case "neq", "!=", "<>": condition = fmt.Sprintf("%s != ?", filter.Column) args = []interface{}{filter.Value} - case "gt": + case "gt", ">": condition = fmt.Sprintf("%s > ?", filter.Column) args = []interface{}{filter.Value} - case "gte": + case "gte", ">=": condition = fmt.Sprintf("%s >= ?", filter.Column) args = []interface{}{filter.Value} - case "lt": + case "lt", "<": condition = fmt.Sprintf("%s < ?", filter.Column) args = []interface{}{filter.Value} - case "lte": + case "lte", "<=": condition = fmt.Sprintf("%s <= ?", filter.Column) args = []interface{}{filter.Value} case "like": @@ -1565,22 +1565,22 @@ func (h *Handler) applyFilter(query common.SelectQuery, filter common.FilterOpti var args []interface{} switch filter.Operator { - case "eq": + case "eq", "=": condition = fmt.Sprintf("%s = ?", filter.Column) args = []interface{}{filter.Value} - case "neq": + case "neq", "!=", "<>": condition = fmt.Sprintf("%s != ?", filter.Column) args = []interface{}{filter.Value} - case "gt": + case "gt", ">": condition = fmt.Sprintf("%s > ?", filter.Column) args = []interface{}{filter.Value} - case "gte": + case "gte", ">=": condition = fmt.Sprintf("%s >= ?", filter.Column) args = []interface{}{filter.Value} - case "lt": + case "lt", "<": condition = fmt.Sprintf("%s < ?", filter.Column) args = []interface{}{filter.Value} - case "lte": + case "lte", "<=": condition = fmt.Sprintf("%s <= ?", filter.Column) args = []interface{}{filter.Value} case "like": diff --git a/pkg/restheadspec/handler.go b/pkg/restheadspec/handler.go index bfbbe67..d52f6b1 100644 --- a/pkg/restheadspec/handler.go +++ b/pkg/restheadspec/handler.go @@ -2226,17 +2226,17 @@ func (h *Handler) applyOrFilterGroup(query common.SelectQuery, filters []*common // buildFilterCondition builds a single filter condition and returns the condition string and args func (h *Handler) buildFilterCondition(qualifiedColumn string, filter *common.FilterOption, tableName string) (filterStr string, filterInterface []interface{}) { switch strings.ToLower(filter.Operator) { - case "eq", "equals": + case "eq", "equals", "=": return fmt.Sprintf("%s = ?", qualifiedColumn), []interface{}{filter.Value} - case "neq", "not_equals", "ne": + case "neq", "not_equals", "ne", "!=", "<>": return fmt.Sprintf("%s != ?", qualifiedColumn), []interface{}{filter.Value} - case "gt", "greater_than": + case "gt", "greater_than", ">": return fmt.Sprintf("%s > ?", qualifiedColumn), []interface{}{filter.Value} - case "gte", "greater_than_equals", "ge": + case "gte", "greater_than_equals", "ge", ">=": return fmt.Sprintf("%s >= ?", qualifiedColumn), []interface{}{filter.Value} - case "lt", "less_than": + case "lt", "less_than", "<": return fmt.Sprintf("%s < ?", qualifiedColumn), []interface{}{filter.Value} - case "lte", "less_than_equals", "le": + case "lte", "less_than_equals", "le", "<=": return fmt.Sprintf("%s <= ?", qualifiedColumn), []interface{}{filter.Value} case "like": return fmt.Sprintf("%s LIKE ?", qualifiedColumn), []interface{}{filter.Value}