From b78a7fdf736cea0da50508b35caef18e7c68e26d Mon Sep 17 00:00:00 2001 From: HaimKortovich Date: Wed, 22 Apr 2026 15:22:36 -0500 Subject: [PATCH] normalize query helpers --- lib/policy_service_web/query_helpers.ex | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/policy_service_web/query_helpers.ex b/lib/policy_service_web/query_helpers.ex index 37e39d5..6e5d7d9 100644 --- a/lib/policy_service_web/query_helpers.ex +++ b/lib/policy_service_web/query_helpers.ex @@ -6,22 +6,20 @@ defmodule PolicyServiceWeb.QueryHelpers do @filter_count 3 def flop(filter_fields, order_fields, other \\ []) do - filter_params = build_filter_params(filter_fields, @filter_count) - [ page: [in: :query, schema: %Schema{type: :number, default: 1}], page_size: [in: :query, schema: %Schema{type: :number, default: 20}], - "order_by[]": [in: :query, schema: %Schema{type: :array, items: %Schema{type: :string, enum: order_fields}}], - "order_directions[]": [in: :query, schema: %Schema{type: :array, items: %Schema{type: :string, enum: ["asc", "desc"]}}] - ] ++ filter_params ++ other + order_by: [in: :query, schema: %Schema{type: :array, items: %Schema{type: :string, enum: order_fields}}], + order_directions: [in: :query, schema: %Schema{type: :array, items: %Schema{type: :string, enum: ["asc", "desc"]}}] + ] ++ build_filter_params(filter_fields) ++ other end - defp build_filter_params(fields, count) do - for i <- 0..(count - 1) do + defp build_filter_params(fields) do + for i <- 0..(@filter_count - 1) do [ - {"filters[#{i}][field]", [in: :query, schema: %Schema{type: :string, enum: fields}]}, - {"filters[#{i}][op]", [in: :query, schema: %Schema{type: :string, enum: Flop.Filter.allowed_operators(:all)}]}, - {"filters[#{i}][value]", [in: :query, schema: %Schema{type: :string}]} + {:"filters_#{i}_field", [in: :query, schema: %Schema{type: :string, enum: fields}]}, + {:"filters_#{i}_op", [in: :query, schema: %Schema{type: :string, enum: Flop.Filter.allowed_operators(:all)}]}, + {:"filters_#{i}_value", [in: :query, schema: %Schema{type: :string}]} ] end |> List.flatten() end