dont use S3 directly allow to use any document url (document service agnostic)
All checks were successful
Build and Publish / build-release (push) Successful in 1m30s
All checks were successful
Build and Publish / build-release (push) Successful in 1m30s
This commit is contained in:
34
lib/provider_service_web/query_helpers.ex
Normal file
34
lib/provider_service_web/query_helpers.ex
Normal file
@@ -0,0 +1,34 @@
|
||||
defmodule ProviderServiceWeb.QueryHelpers do
|
||||
@moduledoc false
|
||||
|
||||
alias OpenApiSpex.Schema
|
||||
|
||||
@filter_count 3
|
||||
|
||||
def flop(filter_fields, order_fields, other \\ []) do
|
||||
[
|
||||
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"]}}
|
||||
]
|
||||
] ++ build_filter_params(filter_fields) ++ other
|
||||
end
|
||||
|
||||
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}]}
|
||||
]
|
||||
end
|
||||
|> List.flatten()
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user