From c680ae581d028144ebea414b4137433ac7ca8e6a Mon Sep 17 00:00:00 2001 From: Lain Iwakura Date: Mon, 27 Nov 2017 17:24:52 +0100 Subject: [PATCH] Return xml notice at /notice path. --- lib/pleroma/web/ostatus/ostatus_controller.ex | 13 +++++++++++++ lib/pleroma/web/router.ex | 1 + test/web/ostatus/ostatus_controller_test.exs | 10 ++++++++++ 3 files changed, 24 insertions(+) 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