OStatusController: Add Mastodon activity compat route.
authorlain <lain@soykaf.club>
Fri, 22 May 2020 15:11:59 +0000 (17:11 +0200)
committerlain <lain@soykaf.club>
Fri, 22 May 2020 15:11:59 +0000 (17:11 +0200)
lib/pleroma/web/ostatus/ostatus_controller.ex
test/web/ostatus/ostatus_controller_test.exs

index 04a4bdeb45b71339006ded81f8b6ce7da0fe39c8..de1b0b3f003fea6150dfedddf7a1a69bba9e2993 100644 (file)
@@ -59,8 +59,8 @@ defmodule Pleroma.Web.OStatus.OStatusController do
     ActivityPubController.call(conn, :activity)
   end
 
-  def activity(%{assigns: %{format: format}} = conn, %{"uuid" => uuid}) do
-    with id <- o_status_url(conn, :activity, uuid),
+  def activity(%{assigns: %{format: format}} = conn, _params) do
+    with id <- Endpoint.url() <> conn.request_path,
          {_, %Activity{} = activity} <- {:activity, Activity.normalize(id)},
          {_, true} <- {:public?, Visibility.is_public?(activity)} do
       case format do
index 0f973d5b6c2cf02269068583f769cdba7dff0016..ee498f4b555ea10022ac07dbe91f2f6713f88900 100644 (file)
@@ -26,10 +26,7 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
   describe "Mastodon compatibility routes" do
     setup %{conn: conn} do
       conn = put_req_header(conn, "accept", "text/html")
-      %{conn: conn}
-    end
 
-    test "redirects to /notice/:id for html format", %{conn: conn} do
       {:ok, object} =
         %{
           "type" => "Note",
@@ -50,9 +47,21 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
         }
         |> ActivityPub.persist(local: true)
 
+      %{conn: conn, activity: activity}
+    end
+
+    test "redirects to /notice/:id for html format", %{conn: conn, activity: activity} do
       conn = get(conn, "/users/raymoo/statuses/999999999")
       assert redirected_to(conn) == "/notice/#{activity.id}"
     end
+
+    test "redirects to /notice/:id for html format for activity", %{
+      conn: conn,
+      activity: activity
+    } do
+      conn = get(conn, "/users/raymoo/statuses/999999999/activity")
+      assert redirected_to(conn) == "/notice/#{activity.id}"
+    end
   end
 
   # Note: see ActivityPubControllerTest for JSON format tests