Return xml notice at /notice path.
authorLain Iwakura <lain@soykaf.club>
Mon, 27 Nov 2017 16:24:52 +0000 (17:24 +0100)
committerLain Iwakura <lain@soykaf.club>
Mon, 27 Nov 2017 16:24:52 +0000 (17:24 +0100)
lib/pleroma/web/ostatus/ostatus_controller.ex
lib/pleroma/web/router.ex
test/web/ostatus/ostatus_controller_test.exs

index 1ac07546fa1391653c530792ca4226b17a6aad81..d442d16fdaad95cd2ddb70ce23cbe5b73322e5cc 100644 (file)
@@ -86,6 +86,19 @@ defmodule Pleroma.Web.OStatus.OStatusController do
     end
   end
 
+  def notice(conn, %{"id" => id}) do
+     with %Activity{} = activity <- Repo.get(Activity, id),
+          %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
+      case get_format(conn) do
+        "html" ->
+          conn
+          |> put_resp_content_type("text/html")
+          |> send_file(200, "priv/static/index.html")
+        _ -> represent_activity(conn, activity, user)
+      end
+    end
+  end
+
   defp represent_activity(conn, activity, user) do
     response = activity
     |> ActivityRepresenter.to_simple_form(user, true)
index f3c476fdce4fd7126f1f3bfb25b02624fb02403e..6806e8a75431a4ee9532772e46d1b014867f9e55 100644 (file)
@@ -207,6 +207,7 @@ defmodule Pleroma.Web.Router do
 
     get "/objects/:uuid", OStatus.OStatusController, :object
     get "/activities/:uuid", OStatus.OStatusController, :activity
+    get "/notice/:id", OStatus.OStatusController, :notice
 
     get "/users/:nickname/feed", OStatus.OStatusController, :feed
     get "/users/:nickname", OStatus.OStatusController, :feed_redirect
index 20d17d41f1cd4e1b58a147b49df67b337b138987..9c945e35b9735a67bd83b040e065c9c0d22b94ee 100644 (file)
@@ -73,6 +73,16 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
 
     assert response(conn, 200)
   end
+
+  test "gets a notice", %{conn: conn} do
+    note_activity = insert(:note_activity)
+    url = "/notice/#{note_activity.id}"
+
+    conn = conn
+    |> get(url)
+
+    assert response(conn, 200)
+  end
 end
 
 defmodule Pleroma.Web.OStatusMock do