schema "activities" do
field :data, :map
+ field :local, :boolean, default: true
timestamps()
end
--- /dev/null
+defmodule Pleroma.Repo.Migrations.AddLocalFieldToActivities do
+ use Ecto.Migration
+
+ def change do
+ alter table(:activities) do
+ add :local, :boolean, default: true
+ end
+
+ create index(:activities, [:local])
+ end
+end
def build(data \\ %{}, opts \\ %{}) do
user = opts[:user] || Pleroma.Factory.insert(:user)
activity = %{
- "id" => 1,
+ "id" => Pleroma.Web.ActivityPub.ActivityPub.generate_object_id,
"actor" => user.ap_id,
"to" => ["https://www.w3.org/ns/activitystreams#Public"],
"object" => %{
def insert_list(times, data \\ %{}, opts \\ %{}) do
Enum.map(1..times, fn (n) ->
- {:ok, activity} = insert(Map.merge(data, %{"id" => n}))
+ {:ok, activity} = insert(data)
activity
end)
end
assert Enum.member?(get_in(activity.data, ["to"]), User.ap_followers(user))
assert Enum.member?(get_in(activity.data, ["to"]), "https://www.w3.org/ns/activitystreams#Public")
assert Enum.member?(get_in(activity.data, ["to"]), "shp")
+ assert activity.local == true
# Add a context
assert is_binary(get_in(activity.data, ["context"]))