Skip to content

Commit ec0aafd

Browse files
committed
Remove unnecessary code
1 parent 133fb51 commit ec0aafd

File tree

4 files changed

+4
-64
lines changed

4 files changed

+4
-64
lines changed

lib/html/form.ex

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ if Code.ensure_loaded?(Phoenix.HTML) && Code.ensure_loaded?(Phoenix.HTML.Form) d
4444
errors: errors,
4545
valid?: errors == []
4646
}
47-
|> add_changes_for_nested_embeds(params, errors)
4847

4948
%Phoenix.HTML.Form{
5049
source: changeset,
@@ -81,66 +80,5 @@ if Code.ensure_loaded?(Phoenix.HTML) && Code.ensure_loaded?(Phoenix.HTML.Form) d
8180
defp get_errors(%{action: nil}), do: []
8281
defp get_errors(%{action: :ignore}), do: []
8382
defp get_errors(%{errors: errors}), do: errors
84-
85-
defp add_changes_for_nested_embeds(changeset, params, _errors) when params == %{},
86-
do: changeset
87-
88-
defp add_changes_for_nested_embeds(changeset, %{} = params, errors) do
89-
embeds_fields_as_string =
90-
changeset.data.__struct__.__schema__(:embeds)
91-
|> Enum.map(&Atom.to_string(&1))
92-
93-
embeds_params =
94-
Enum.filter(params, fn {key, _} -> Enum.member?(embeds_fields_as_string, key) end)
95-
|> Enum.map(fn {key, value} -> {String.to_existing_atom(key), value} end)
96-
97-
do_add_changes_for_nested_embeds(changeset, embeds_params, errors)
98-
end
99-
100-
defp do_add_changes_for_nested_embeds(changeset, [], _errors), do: changeset
101-
102-
defp do_add_changes_for_nested_embeds(
103-
changeset,
104-
[{embed_field, %{} = embed_params} | tail_params],
105-
errors
106-
) do
107-
embed_errors =
108-
Enum.find(errors, fn {error_key, _} -> error_key == embed_field end)
109-
|> case do
110-
{_, {_, errors}} -> errors
111-
_ -> []
112-
end
113-
114-
embed_data =
115-
Map.get(changeset.data, embed_field) ||
116-
get_embed_struct(changeset, embed_field, embed_params)
117-
118-
embed_changeset =
119-
%Ecto.Changeset{
120-
data: embed_data,
121-
action: changeset.action,
122-
params: embed_params,
123-
errors: embed_errors,
124-
valid?: embed_errors == [],
125-
changes: %{}
126-
}
127-
|> add_changes_for_nested_embeds(embed_params, embed_errors)
128-
129-
changeset = %{changeset | changes: Map.put(changeset.changes, embed_field, embed_changeset)}
130-
131-
do_add_changes_for_nested_embeds(changeset, tail_params, embed_errors)
132-
end
133-
134-
defp do_add_changes_for_nested_embeds(changeset, [_ | tail_params], errors) do
135-
do_add_changes_for_nested_embeds(changeset, tail_params, errors)
136-
end
137-
138-
defp get_embed_struct(changeset, field, params) do
139-
changeset
140-
|> Ecto.Changeset.cast(%{field => params}, [])
141-
|> Ecto.Changeset.cast_embed(field)
142-
|> Ecto.Changeset.apply_changes()
143-
|> Map.fetch!(field)
144-
end
14583
end
14684
end

test/polymorphic_embed_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,7 +1209,7 @@ defmodule PolymorphicEmbedTest do
12091209
__type__: "location",
12101210
address: "hello",
12111211
country: %{
1212-
name: ""
1212+
name: "A"
12131213
}
12141214
},
12151215
%{
@@ -1269,7 +1269,7 @@ defmodule PolymorphicEmbedTest do
12691269
assert f.impl == Phoenix.HTML.FormData.Ecto.Changeset
12701270

12711271
if index == 0 do
1272-
assert f.errors == [name: {"can't be blank", [validation: :required]}]
1272+
assert f.errors == [name: {"should be at least %{count} character(s)", [count: 3, validation: :length, kind: :min, type: :string]}]
12731273
else
12741274
assert f.errors == []
12751275
end

test/support/models/not_polymorphic/country.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ defmodule PolymorphicEmbed.Regular.Country do
1313
struct
1414
|> cast(params, ~w(name)a)
1515
|> validate_required(~w(name)a)
16+
|> validate_length(:name, min: 3)
1617
end
1718
end

test/support/models/polymorphic/country.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ defmodule PolymorphicEmbed.Country do
1313
struct
1414
|> cast(params, ~w(name)a)
1515
|> validate_required(~w(name)a)
16+
|> validate_length(:name, min: 3)
1617
end
1718
end

0 commit comments

Comments
 (0)