defmodule Pleroma.Builders.ActivityBuilder do
- alias Pleroma.Builders.UserBuilder
alias Pleroma.Web.ActivityPub.ActivityPub
def build(data \\ %{}, opts \\ %{}) do
user = opts[:user] || Pleroma.Factory.insert(:user)
+
activity = %{
- "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id,
+ "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id(),
"actor" => user.ap_id,
"to" => ["https://www.w3.org/ns/activitystreams#Public"],
"type" => "Create",
"object" => %{
"type" => "Note",
"content" => "test",
- "to" => ["https://www.w3.org/ns/activitystreams#Public"],
+ "to" => ["https://www.w3.org/ns/activitystreams#Public"]
}
}
+
Map.merge(activity, data)
end
def insert(data \\ %{}, opts \\ %{}) do
activity = build(data, opts)
- ActivityPub.insert(activity)
+
+ case ActivityPub.insert(activity) do
+ ok = {:ok, activity} ->
+ ActivityPub.notify_and_stream(activity)
+ ok
+
+ error ->
+ error
+ end
end
def insert_list(times, data \\ %{}, opts \\ %{}) do
- Enum.map(1..times, fn (n) ->
+ Enum.map(1..times, fn _n ->
{:ok, activity} = insert(data, opts)
activity
end)