Current section

Files

Jump to
bus_car lib bus_car query.ex
Raw

lib/bus_car/query.ex

defmodule BusCar.Query do
def from_map(%{} = map) do
[:query, :bool, :must | map_to_terms(map) ]
end
defp map_to_terms(map) do
map
|> Enum.map(fn
{k, v} when k |> is_atom -> {Atom.to_string(k), v}
{k, v} when k |> is_binary -> {k, v}
end)
|> Enum.reduce([], fn ({k, v}, acc) -> [:term, k, v | acc] end)
end
end