diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/ostatus/ostatus_controller.ex | 18 | ||||
-rw-r--r-- | lib/pleroma/web/router.ex | 1 |
2 files changed, 16 insertions, 3 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex index e6822463d..fd8dcdf52 100644 --- a/lib/pleroma/web/ostatus/ostatus_controller.ex +++ b/lib/pleroma/web/ostatus/ostatus_controller.ex @@ -44,10 +44,22 @@ defmodule Pleroma.Web.OStatus.OStatusController do end def object(conn, %{"uuid" => uuid}) do - id = o_status_url(conn, :object, uuid) - activity = Activity.get_create_activity_by_object_ap_id(id) - user = User.get_cached_by_ap_id(activity.data["actor"]) + with id <- o_status_url(conn, :object, uuid), + %Activity{} = activity <- Activity.get_create_activity_by_object_ap_id(id), + %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do + represent_activity(conn, activity, user) + end + end + + def activity(conn, %{"uuid" => uuid}) do + with id <- o_status_url(conn, :activity, uuid), + %Activity{} = activity <- Activity.get_by_ap_id(id), + %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do + represent_activity(conn, activity, user) + end + end + defp represent_activity(conn, activity, user) do response = activity |> ActivityRepresenter.to_simple_form(user, true) |> ActivityRepresenter.wrap_with_entry diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 15f66b24f..12159cffc 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -77,6 +77,7 @@ defmodule Pleroma.Web.Router do pipe_through :ostatus get "/objects/:uuid", OStatus.OStatusController, :object + get "/activities/:uuid", OStatus.OStatusController, :activity get "/users/:nickname/feed", OStatus.OStatusController, :feed get "/users/:nickname", OStatus.OStatusController, :feed_redirect |