Commit 6aa1523b authored by lain's avatar lain
Browse files

Put objects in inserted activties into the db.

parent 40eb0e4c
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
......@@ -8,6 +8,7 @@ def insert(map) when is_map(map) 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
......
......@@ -25,7 +25,7 @@ test "inserts a given map into the activity database, giving it an id if it has
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 @@ test "adds an id to a given object if it lacks one" 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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment