EctoFilter.Operators.Inclusion behaviour (EctoFilter v0.3.1) View Source

Inclusion operators.

Examples:

iex> Repo.insert!(%Post{category: "News"})
iex> Repo.insert!(%Post{category: "Sports"})
iex> result =
...>   Post
...>   |> EctoFilter.filter([{:category, :in, ["News", "Weather"]}])
...>   |> Repo.all()
iex> length(result)
1
iex> hd(result).category
"News"

iex> Repo.insert!(%Post{tags: ["News", "Sports"]})
iex> Repo.insert!(%Post{tags: ["Weather"]})
iex> result =
...>   Post
...>   |> EctoFilter.filter([{:tags, :contains, "Sports"}])
...>   |> Repo.all()
iex> length(result)
1
iex> hd(result).tags
["News", "Sports"]

Link to this section Summary

Link to this section Types

Specs

condition() :: {field :: atom(), rule :: rule(), value :: any()}

Specs

rule() :: :in | :contains

Link to this section Callbacks

Link to this callback

apply(query, condition, type, context)

View Source

Specs

apply(
  query :: Ecto.Query.t(),
  condition :: condition(),
  type :: EctoFilter.field_type(),
  context :: Ecto.Queriable.t()
) :: Ecto.Query.t()