summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/activity_pub/object_validator.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/activity_pub/object_validator.ex')
-rw-r--r--lib/pleroma/web/activity_pub/object_validator.ex14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex
index c2afd6370..de5b8e522 100644
--- a/lib/pleroma/web/activity_pub/object_validator.ex
+++ b/lib/pleroma/web/activity_pub/object_validator.ex
@@ -31,6 +31,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do
alias Pleroma.Web.ActivityPub.ObjectValidators.EventValidator
alias Pleroma.Web.ActivityPub.ObjectValidators.FollowValidator
alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator
+ alias Pleroma.Web.ActivityPub.ObjectValidators.ListenValidator
alias Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator
alias Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator
alias Pleroma.Web.ActivityPub.ObjectValidators.UpdateValidator
@@ -99,6 +100,19 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do
end
def validate(
+ %{"type" => "Listen", "object" => %{"type" => "Audio"} = object} = activity,
+ meta
+ ) do
+ with {:ok, activity} <-
+ activity
+ |> ListenValidator.cast_and_validate(meta)
+ |> Ecto.Changeset.apply_action(:insert) do
+ activity = stringify_keys(activity)
+ {:ok, activity, meta}
+ end
+ end
+
+ def validate(
%{"type" => "Create", "object" => %{"type" => objtype} = object} = create_activity,
meta
)