24 lines
774 B
Elixir
24 lines
774 B
Elixir
defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web_namespace, schema.alias) %>JSON do
|
|
alias <%= inspect schema.module %>
|
|
|
|
@doc """
|
|
Renders a list of <%= schema.plural %>.
|
|
"""
|
|
def index(%{<%= schema.plural %>: <%= schema.plural %>}) do
|
|
%{data: for(<%= schema.singular %> <- <%= schema.plural %>, do: data(<%= schema.singular %>))}
|
|
end
|
|
|
|
@doc """
|
|
Renders a single <%= schema.singular %>.
|
|
"""
|
|
def show(%{<%= schema.singular %>: <%= schema.singular %>}) do
|
|
%{data: data(<%= schema.singular %>)}
|
|
end
|
|
|
|
defp data(%<%= inspect schema.alias %>{} = <%= schema.singular %>) do
|
|
%{
|
|
<%= [{:id, :id} | schema.attrs] |> Enum.map(fn {k, _} -> " #{k}: #{schema.singular}.#{k}" end) |> Enum.join(",\n") %>
|
|
}
|
|
end
|
|
end
|