fix: Fix generated code for embeds
This commit is contained in:
parent
0bd0153204
commit
bef0d41f0e
3 changed files with 13 additions and 11 deletions
|
@ -22,7 +22,7 @@ defmodule <%= @namespace %>.<%= @version %>.<%= class_name(@resource_name) %> do
|
||||||
<%= for {name, df, _} <- @properties.enum do %>field :<%= Recase.to_snake(name) %>, Ecto.Enum, values: <%= inspect(df["enum"] |> Enum.map(&Recase.to_snake(&1)) |> Enum.map(&String.to_atom/1)) %>
|
<%= for {name, df, _} <- @properties.enum do %>field :<%= Recase.to_snake(name) %>, Ecto.Enum, values: <%= inspect(df["enum"] |> Enum.map(&Recase.to_snake(&1)) |> Enum.map(&String.to_atom/1)) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= if @properties.embed_one != [] do %># Embed One<% end %>
|
<%= if @properties.embed_one != [] do %># Embed One<% end %>
|
||||||
<%= for {name, df, _} <- @properties.embed_one do %>embed_one :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
<%= for {name, df, _} <- @properties.embeds_one do %>embed_one :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= if @properties.embed_many != [] do %># Embed Many<% end %>
|
<%= if @properties.embed_many != [] do %># Embed Many<% end %>
|
||||||
<%= for {name, df, _} <- @properties.embed_many do %>embed_many :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
<%= for {name, df, _} <- @properties.embed_many do %>embed_many :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
||||||
|
|
|
@ -47,6 +47,16 @@ defmodule Kindling.Schema.Resource do
|
||||||
|
|
||||||
def property_type(%{"const" => _}), do: :const
|
def property_type(%{"const" => _}), do: :const
|
||||||
|
|
||||||
|
for embed <- Config.embedded_resources() do
|
||||||
|
dbg(embed)
|
||||||
|
|
||||||
|
def property_type(%{"$ref" => "#/definitions/" <> unquote(embed)}), do: :embed_one
|
||||||
|
|
||||||
|
def property_type(%{"items" => %{"$ref" => "#/definitions/" <> unquote(embed)}}) do
|
||||||
|
:embed_many
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def property_type(%{"$ref" => "#/definitions/" <> name}) do
|
def property_type(%{"$ref" => "#/definitions/" <> name}) do
|
||||||
if is_class_name(name) do
|
if is_class_name(name) do
|
||||||
:has_one
|
:has_one
|
||||||
|
@ -55,14 +65,6 @@ defmodule Kindling.Schema.Resource do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for embed <- Config.embedded_resources() do
|
|
||||||
def property_type(%{"$ref" => "#/definitions/" <> unquote(embed)}), do: :embed_one
|
|
||||||
|
|
||||||
def property_type(%{"items" => %{"$ref" => "#/definitions/" <> unquote(embed)}}) do
|
|
||||||
:embed_many
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def property_type(%{"items" => %{"$ref" => "#/definitions/" <> name}}) do
|
def property_type(%{"items" => %{"$ref" => "#/definitions/" <> name}}) do
|
||||||
if is_class_name(name) do
|
if is_class_name(name) do
|
||||||
:has_many
|
:has_many
|
||||||
|
|
|
@ -23,10 +23,10 @@ defmodule <%= @namespace %>.<%= @version %>.<%= class_name(@resource_name) %> do
|
||||||
<%= for {name, df, _} <- @properties.enum do %>field :<%= Recase.to_snake(name) %>, Ecto.Enum, values: <%= inspect(df["enum"] |> Enum.map(&Recase.to_snake(&1)) |> Enum.map(&String.to_atom/1)) %>
|
<%= for {name, df, _} <- @properties.enum do %>field :<%= Recase.to_snake(name) %>, Ecto.Enum, values: <%= inspect(df["enum"] |> Enum.map(&Recase.to_snake(&1)) |> Enum.map(&String.to_atom/1)) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= if @properties.embed_one != [] do %># Embed One<% end %>
|
<%= if @properties.embed_one != [] do %># Embed One<% end %>
|
||||||
<%= for {name, df, _} <- @properties.embed_one do %>embed_one :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
<%= for {name, df, _} <- @properties.embed_one do %>embeds_one :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= if @properties.embed_many != [] do %># Embed Many<% end %>
|
<%= if @properties.embed_many != [] do %># Embed Many<% end %>
|
||||||
<%= for {name, df, _} <- @properties.embed_many do %>embed_many :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
<%= for {name, df, _} <- @properties.embed_many do %>embed_many :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["items"]["$ref"]) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= if @properties.has_one != [] do %># Has One<% end %>
|
<%= if @properties.has_one != [] do %># Has One<% end %>
|
||||||
<%= for {name, df, _} <- @properties.has_one do %>has_one :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
<%= for {name, df, _} <- @properties.has_one do %>has_one :<%= Recase.to_snake(name) %>, <%= @namespace %>.<%= @version %>.<%= ref_to_class_name(df["$ref"]) %>
|
||||||
|
|
Loading…
Reference in a new issue