Treat empty maps as nils
This commit is contained in:
parent
d86a1e73e9
commit
4bcae3597f
3 changed files with 22 additions and 2 deletions
|
@ -22,7 +22,11 @@ def cast(object) when is_map(object) do
|
||||||
acc
|
acc
|
||||||
end)
|
end)
|
||||||
|
|
||||||
{:ok, data}
|
if data == %{} do
|
||||||
|
{:ok, nil}
|
||||||
|
else
|
||||||
|
{:ok, data}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def cast(_), do: :error
|
def cast(_), do: :error
|
||||||
|
|
|
@ -345,7 +345,8 @@ def fix_tag(object), do: object
|
||||||
def fix_content_map(%{"content" => content} = object) when not_empty_string(content), do: object
|
def fix_content_map(%{"content" => content} = object) when not_empty_string(content), do: object
|
||||||
|
|
||||||
# content map usually only has one language so this will do for now.
|
# content map usually only has one language so this will do for now.
|
||||||
def fix_content_map(%{"contentMap" => content_map} = object) do
|
def fix_content_map(%{"contentMap" => content_map} = object)
|
||||||
|
when is_map(content_map) and content_map != %{} do
|
||||||
content_groups = Map.to_list(content_map)
|
content_groups = Map.to_list(content_map)
|
||||||
{_, content} = Enum.at(content_groups, 0)
|
{_, content} = Enum.at(content_groups, 0)
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,21 @@ test "Note with contentMap and summaryMap", %{note: note} do
|
||||||
}
|
}
|
||||||
} = ArticleNotePageValidator.cast_and_validate(note)
|
} = ArticleNotePageValidator.cast_and_validate(note)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "Note with empty *Map", %{note: note} do
|
||||||
|
note =
|
||||||
|
note
|
||||||
|
|> Map.put("summaryMap", %{"und" => "mew"})
|
||||||
|
|> Map.put("contentMap", %{})
|
||||||
|
|
||||||
|
assert %{
|
||||||
|
valid?: true,
|
||||||
|
changes: changes
|
||||||
|
} = ArticleNotePageValidator.cast_and_validate(note)
|
||||||
|
|
||||||
|
assert Map.has_key?(changes, :summaryMap)
|
||||||
|
refute Map.has_key?(changes, :contentMap)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "Note with history" do
|
describe "Note with history" do
|
||||||
|
|
Loading…
Reference in a new issue