logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 8de523c8aec19e999334753b5a982fff00d1f44c
parent: 093fd1832dd9e8137e28932fe167bcdc7e228366
Author: Roger Braun <roger@rogerbraun.net>
Date:   Tue, 21 Mar 2017 09:21:52 +0100

Basic AP objects.

Diffstat:

Alib/pleroma/activity.ex9+++++++++
Alib/pleroma/object.ex9+++++++++
Alib/pleroma/web/activity_pub/activity_pub.ex8++++++++
Apriv/repo/migrations/20170321074828_create_activity.exs14++++++++++++++
Apriv/repo/migrations/20170321074832_create_object.exs12++++++++++++
Atest/web/activity_pub/activity_pub_test.exs17+++++++++++++++++
6 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex @@ -0,0 +1,9 @@ +defmodule Pleroma.Activity do + use Ecto.Schema + + schema "activities" do + field :data, :map + + timestamps() + end +end diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex @@ -0,0 +1,9 @@ +defmodule Pleroma.Object do + use Ecto.Schema + + schema "objects" do + field :data, :map + + timestamps() + end +end diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -0,0 +1,8 @@ +defmodule Pleroma.Web.ActivityPub.ActivityPub do + alias Pleroma.Repo + alias Pleroma.Activity + + def insert(map) when is_map(map) do + Repo.insert(%Activity{data: map}) + end +end diff --git a/priv/repo/migrations/20170321074828_create_activity.exs b/priv/repo/migrations/20170321074828_create_activity.exs @@ -0,0 +1,14 @@ +defmodule Pleroma.Repo.Migrations.CreatePleroma.Activity do + use Ecto.Migration + + def change do + create table(:activities) do + add :data, :map + + timestamps() + end + + create index(:activities, [:data], using: :gin) + + end +end diff --git a/priv/repo/migrations/20170321074832_create_object.exs b/priv/repo/migrations/20170321074832_create_object.exs @@ -0,0 +1,12 @@ +defmodule Pleroma.Repo.Migrations.CreatePleroma.Object do + use Ecto.Migration + + def change do + create table(:objects) do + add :data, :map + + timestamps() + end + + end +end diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs @@ -0,0 +1,17 @@ +defmodule Pleroma.Web.ActivityPub.ActivityPubTest do + use Pleroma.DataCase + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Activity + + describe "insertion" do + test "inserts a given map into the activity database" do + data = %{ + ok: true + } + + {:ok, %Activity{} = activity} = ActivityPub.insert(data) + assert activity.data == data + end + end + +end