Builder.note/1: return {:ok, map(), keyword()} like other Builder functions

This commit is contained in:
Alex Gleason 2021-08-14 11:24:55 -05:00
parent a2eacfc525
commit ba6049aa81
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7
3 changed files with 36 additions and 28 deletions

View file

@ -126,21 +126,25 @@ defmodule Pleroma.Web.ActivityPub.Builder do
|> Pleroma.Maps.put_if_present("context", context), []} |> Pleroma.Maps.put_if_present("context", context), []}
end end
@spec note(ActivityDraft.t()) :: {:ok, map(), keyword()}
def note(%ActivityDraft{} = draft) do def note(%ActivityDraft{} = draft) do
%{ data =
"type" => "Note", %{
"to" => draft.to, "type" => "Note",
"cc" => draft.cc, "to" => draft.to,
"content" => draft.content_html, "cc" => draft.cc,
"summary" => draft.summary, "content" => draft.content_html,
"sensitive" => draft.sensitive, "summary" => draft.summary,
"context" => draft.context, "sensitive" => draft.sensitive,
"attachment" => draft.attachments, "context" => draft.context,
"actor" => draft.user.ap_id, "attachment" => draft.attachments,
"tag" => Keyword.values(draft.tags) |> Enum.uniq() "actor" => draft.user.ap_id,
} "tag" => Keyword.values(draft.tags) |> Enum.uniq()
|> add_in_reply_to(draft.in_reply_to) }
|> Map.merge(draft.extra) |> add_in_reply_to(draft.in_reply_to)
|> Map.merge(draft.extra)
{:ok, data, []}
end end
defp add_in_reply_to(object, nil), do: object defp add_in_reply_to(object, nil), do: object

View file

@ -214,8 +214,10 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
emoji = Map.merge(emoji, summary_emoji) emoji = Map.merge(emoji, summary_emoji)
{:ok, note_data, _meta} = Builder.note(draft)
object = object =
Builder.note(draft) note_data
|> Map.put("emoji", emoji) |> Map.put("emoji", emoji)
|> Map.put("source", draft.status) |> Map.put("source", draft.status)
|> Map.put("generator", draft.params[:generator]) |> Map.put("generator", draft.params[:generator])

View file

@ -28,19 +28,21 @@ defmodule Pleroma.Web.ActivityPub.BuilderTest do
extra: %{"custom_tag" => "test"} extra: %{"custom_tag" => "test"}
} }
assert Builder.note(draft) == %{ expected = %{
"actor" => user.ap_id, "actor" => user.ap_id,
"attachment" => [], "attachment" => [],
"cc" => [user3.ap_id], "cc" => [user3.ap_id],
"content" => "<h1>This is :moominmamma: note</h1>", "content" => "<h1>This is :moominmamma: note</h1>",
"context" => "2hu", "context" => "2hu",
"sensitive" => false, "sensitive" => false,
"summary" => "test summary", "summary" => "test summary",
"tag" => ["jimm"], "tag" => ["jimm"],
"to" => [user2.ap_id], "to" => [user2.ap_id],
"type" => "Note", "type" => "Note",
"custom_tag" => "test" "custom_tag" => "test"
} }
assert {:ok, ^expected, []} = Builder.note(draft)
end end
end end
end end