mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-12-23 00:26:30 +00:00
Merge branch 'tusooa/fix-object-test' into 'develop'
Fix ObjectTest See merge request pleroma/pleroma!3887
This commit is contained in:
commit
5433742faf
2 changed files with 6 additions and 3 deletions
1
changelog.d/fix-object-test.fix
Normal file
1
changelog.d/fix-object-test.fix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Correctly handle the situation when a poll has both "anyOf" and "oneOf" but one of them being empty
|
|
@ -100,12 +100,14 @@ defmodule Pleroma.Object.Updater do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp maybe_update_poll(to_be_updated, updated_object) do
|
defp maybe_update_poll(to_be_updated, updated_object) do
|
||||||
choice_key = fn data ->
|
choice_key = fn
|
||||||
if Map.has_key?(data, "anyOf"), do: "anyOf", else: "oneOf"
|
%{"anyOf" => [_ | _]} -> "anyOf"
|
||||||
|
%{"oneOf" => [_ | _]} -> "oneOf"
|
||||||
|
_ -> nil
|
||||||
end
|
end
|
||||||
|
|
||||||
with true <- to_be_updated["type"] == "Question",
|
with true <- to_be_updated["type"] == "Question",
|
||||||
key <- choice_key.(updated_object),
|
key when not is_nil(key) <- choice_key.(updated_object),
|
||||||
true <- key == choice_key.(to_be_updated),
|
true <- key == choice_key.(to_be_updated),
|
||||||
orig_choices <- to_be_updated[key] |> Enum.map(&Map.drop(&1, ["replies"])),
|
orig_choices <- to_be_updated[key] |> Enum.map(&Map.drop(&1, ["replies"])),
|
||||||
new_choices <- updated_object[key] |> Enum.map(&Map.drop(&1, ["replies"])),
|
new_choices <- updated_object[key] |> Enum.map(&Map.drop(&1, ["replies"])),
|
||||||
|
|
Loading…
Reference in a new issue