diff options
author | lambda <pleromagit@rogerbraun.net> | 2018-11-17 22:20:08 +0000 |
---|---|---|
committer | lambda <pleromagit@rogerbraun.net> | 2018-11-17 22:20:08 +0000 |
commit | b471344b6361945aff94685db8d3065da0e5228a (patch) | |
tree | 137d8ae7c819a4fbb82aae88cb826bd2ec3ec8bf /lib | |
parent | d73c7cc0caf322316541fe8daf72ec34d95e1520 (diff) | |
parent | 98795172a76db8d3331015461a021092c75cae5d (diff) | |
download | pleroma-b471344b6361945aff94685db8d3065da0e5228a.tar.gz |
Merge branch 'bugfix/notice-urls-should-return-objects' into 'develop'
ostatus controller: respond with AS2 objects instead of activities to notice URIs
Closes #289 and #383
See merge request pleroma/pleroma!462
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/ostatus/ostatus_controller.ex | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex index 2f92935e7..34fdf9727 100644 --- a/lib/pleroma/web/ostatus/ostatus_controller.ex +++ b/lib/pleroma/web/ostatus/ostatus_controller.ex @@ -1,7 +1,7 @@ defmodule Pleroma.Web.OStatus.OStatusController do use Pleroma.Web, :controller - alias Pleroma.{User, Activity} + alias Pleroma.{User, Activity, Object} alias Pleroma.Web.OStatus.{FeedRepresenter, ActivityRepresenter} alias Pleroma.Repo alias Pleroma.Web.{OStatus, Federator} @@ -153,10 +153,21 @@ defmodule Pleroma.Web.OStatus.OStatusController do end end - defp represent_activity(conn, "activity+json", activity, user) do + defp represent_activity( + conn, + "activity+json", + %Activity{data: %{"type" => "Create"}} = activity, + user + ) do + object = Object.normalize(activity.data["object"]) + conn |> put_resp_header("content-type", "application/activity+json") - |> json(ObjectView.render("object.json", %{object: activity})) + |> json(ObjectView.render("object.json", %{object: object})) + end + + defp represent_activity(conn, "activity+json", _, _) do + {:error, :not_found} end defp represent_activity(conn, _, activity, user) do |