Improve search

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2022-08-22 12:12:09 +02:00
parent 444e0d6a0c
commit baac00f678
36 changed files with 1343 additions and 1013 deletions

View File

@@ -530,6 +530,8 @@ defmodule Mobilizon.Events do
|> events_for_begins_on(args)
|> events_for_ends_on(args)
|> events_for_category(args)
|> events_for_categories(args)
|> events_for_statuses(args)
|> events_for_tags(args)
|> events_for_location(args)
|> filter_online(args)
@@ -1320,6 +1322,19 @@ defmodule Mobilizon.Events do
defp events_for_category(query, _args), do: query
@spec events_for_categories(Ecto.Queryable.t(), map()) :: Ecto.Query.t()
defp events_for_categories(query, %{category_one_of: category_one_of}) when length(category_one_of) > 0 do
where(query, [q], q.category in ^category_one_of)
end
defp events_for_categories(query, _args), do: query
defp events_for_statuses(query, %{status_one_of: status_one_of}) when length(status_one_of) > 0 do
where(query, [q], q.status in ^status_one_of)
end
defp events_for_statuses(query, _args), do: query
@spec events_for_tags(Ecto.Queryable.t(), map()) :: Ecto.Query.t()
defp events_for_tags(query, %{tags: tags}) when is_valid_string(tags) do
query