summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>2024-01-25 00:26:55 +0100
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>2024-01-26 16:18:29 +0100
commit0de1a7629c5dbf3f6fba69a41bbeff5947558899 (patch)
tree83d52739e7238f8693fb4a054c4c2885917b972c /lib
parent626c22961f7eb0bfc8735a11ef005e5b991f75ce (diff)
downloadpleroma-0de1a7629c5dbf3f6fba69a41bbeff5947558899.tar.gz
pleroma-0de1a7629c5dbf3f6fba69a41bbeff5947558899.zip
Maps: Add filter_empty_values/1
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/maps.ex15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/pleroma/maps.ex b/lib/pleroma/maps.ex
index 6d586e53e..5020a8ff8 100644
--- a/lib/pleroma/maps.ex
+++ b/lib/pleroma/maps.ex
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2024 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Maps do
@@ -18,4 +18,17 @@ defmodule Pleroma.Maps do
rescue
_ -> data
end
+
+ def filter_empty_values(data) do
+ # TODO: Change to Map.filter in Elixir 1.13+
+ data
+ |> Enum.filter(fn
+ {_k, nil} -> false
+ {_k, ""} -> false
+ {_k, []} -> false
+ {_k, %{} = v} -> Map.keys(v) != []
+ {_k, _v} -> true
+ end)
+ |> Map.new()
+ end
end