Current section
Files
Jump to
Current section
Files
lib/forage.ex
defmodule Forage do
@moduledoc """
Documentation for Forage.
"""
import Ecto.Query, only: [where: 3]
alias Forage.Codec.Decoder
defdelegate build_query(params, schema, options), to: Forage.QueryBuilder
defdelegate paginate(params, schema, options, repo_opts), to: Forage.Paginator
@doc """
ABC
"""
def cast_related(params, schema, repo) do
for {key, value} <- params, into: %{} do
case key do
"__forage_select_many__" <> name ->
remote_schema = Decoder.remote_schema(name, schema)
# In this case, value is a list of `id`s
items = remote_schema |> where([p], p.id in ^value) |> repo.all()
{name, items}
name ->
{name, value}
end
end
end
end