logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 6aa1523bb3d8dfe12ce5143d27023fd833b0c1aa
parent: 40eb0e4c24b74e608f11f9f77d9ef2d843641014
Author: Roger Braun <roger@rogerbraun.net>
Date:   Thu, 30 Mar 2017 18:07:01 +0200

Put objects in inserted activties into the db.

Diffstat:

Mlib/pleroma/object.ex7+++++++
Mlib/pleroma/web/activity_pub/activity_pub.ex1+
Mtest/web/activity_pub/activity_pub_test.exs3++-
3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex @@ -1,9 +1,16 @@ defmodule Pleroma.Object do use Ecto.Schema + alias Pleroma.{Repo, Object} + import Ecto.Query schema "objects" do field :data, :map timestamps() end + + def get_by_ap_id(ap_id) do + Repo.one(from object in Object, + where: fragment("? @> ?", object.data, ^%{id: ap_id})) + end end diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -8,6 +8,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do map = if map["object"] do object = Map.put_new_lazy(map["object"], "id", &generate_object_id/0) + Repo.insert!(%Object{data: object}) Map.put(map, "object", object) else map diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs @@ -25,7 +25,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do assert activity.data["id"] == given_id end - test "adds an id to a given object if it lacks one" do + test "adds an id to a given object if it lacks one and inserts it to the object database" do data = %{ "object" => %{ "ok" => true @@ -34,6 +34,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do {:ok, %Activity{} = activity} = ActivityPub.insert(data) assert is_binary(activity.data["object"]["id"]) + assert %Object{} = Object.get_by_ap_id(activity.data["object"]["id"]) end end