Current section

Files

Jump to
fiqlex lib query_builders selectors_getter.ex
Raw

lib/query_builders/selectors_getter.ex

defmodule FIQLEx.SelectorsGetter do
use FIQLEx.QueryBuilder
@impl true
def init(_ast, _opts), do: []
@impl true
def build(_ast, selectors), do: {:ok, Enum.uniq(selectors)}
@impl true
def handle_or_expression(exp1, exp2, ast, state) do
{:ok, handle_ast!(exp1, ast, state) ++ handle_ast!(exp2, ast, state)}
end
@impl true
def handle_and_expression(exp1, exp2, ast, state) do
{:ok, handle_ast!(exp1, ast, state) ++ handle_ast!(exp2, ast, state)}
end
@impl true
def handle_expression(exp, ast, state), do: {:ok, handle_ast!(exp, ast, state)}
@impl true
def handle_selector(selector, _ast, selectors), do: {:ok, [selector | selectors]}
@impl true
def handle_selector_and_value(selector, _op, _value, _ast, selectors),
do: {:ok, [selector | selectors]}
@impl true
def handle_selector_and_value_with_comparison(selector, _op, _value, _ast, selectors),
do: {:ok, [selector | selectors]}
end