activitypub: transmogrifier: sanitize internal representation details from outgoing objects
this causes JSON-LD parsers to get upset and has also lead to developer confusion from outside projects which tried to parse our internal data. accordingly, it seems better to just remove it.
This commit is contained in:
parent
f8310114a6
commit
97e50f3191
|
@ -589,6 +589,8 @@ def prepare_object(object) do
|
||||||
|> prepare_attachments
|
|> prepare_attachments
|
||||||
|> set_conversation
|
|> set_conversation
|
||||||
|> set_reply_to_uri
|
|> set_reply_to_uri
|
||||||
|
|> strip_internal_fields
|
||||||
|
|> strip_internal_tags
|
||||||
end
|
end
|
||||||
|
|
||||||
# @doc
|
# @doc
|
||||||
|
@ -755,6 +757,29 @@ def prepare_attachments(object) do
|
||||||
|> Map.put("attachment", attachments)
|
|> Map.put("attachment", attachments)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp strip_internal_fields(object) do
|
||||||
|
object
|
||||||
|
|> Map.drop([
|
||||||
|
"likes",
|
||||||
|
"like_count",
|
||||||
|
"announcements",
|
||||||
|
"announcement_count",
|
||||||
|
"emoji",
|
||||||
|
"context_id"
|
||||||
|
])
|
||||||
|
end
|
||||||
|
|
||||||
|
defp strip_internal_tags(%{"tag" => tags} = object) do
|
||||||
|
tags =
|
||||||
|
tags
|
||||||
|
|> Enum.filter(fn x -> is_map(x) end)
|
||||||
|
|
||||||
|
object
|
||||||
|
|> Map.put("tag", tags)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp strip_internal_tags(object), do: object
|
||||||
|
|
||||||
defp user_upgrade_task(user) do
|
defp user_upgrade_task(user) do
|
||||||
old_follower_address = User.ap_followers(user)
|
old_follower_address = User.ap_followers(user)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue