aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLain Iwakura <lain@soykaf.club>2017-11-27 17:24:52 +0100
committerLain Iwakura <lain@soykaf.club>2017-11-27 17:24:52 +0100
commitc680ae581d028144ebea414b4137433ac7ca8e6a (patch)
treeacbd95e8ab4c48332fbff75edf2b051be255639a
parent89a8dc748525063afc673e49875d0b605df73d77 (diff)
downloadpleroma-c680ae581d028144ebea414b4137433ac7ca8e6a.tar.gz
Return xml notice at /notice path.
-rw-r--r--lib/pleroma/web/ostatus/ostatus_controller.ex13
-rw-r--r--lib/pleroma/web/router.ex1
-rw-r--r--test/web/ostatus/ostatus_controller_test.exs10
3 files changed, 24 insertions, 0 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex
index 1ac07546f..d442d16fd 100644
--- a/lib/pleroma/web/ostatus/ostatus_controller.ex
+++ b/lib/pleroma/web/ostatus/ostatus_controller.ex
@@ -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)
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index f3c476fdc..6806e8a75 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -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
diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs
index 20d17d41f..9c945e35b 100644
--- a/test/web/ostatus/ostatus_controller_test.exs
+++ b/test/web/ostatus/ostatus_controller_test.exs
@@ -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