aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/pleroma_api/pleroma_api_controller.ex9
-rw-r--r--lib/pleroma/web/router.ex1
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/pleroma/web/pleroma_api/pleroma_api_controller.ex b/lib/pleroma/web/pleroma_api/pleroma_api_controller.ex
index 018564452..3175a99b1 100644
--- a/lib/pleroma/web/pleroma_api/pleroma_api_controller.ex
+++ b/lib/pleroma/web/pleroma_api/pleroma_api_controller.ex
@@ -13,6 +13,15 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIController do
alias Pleroma.Web.MastodonAPI.ConversationView
alias Pleroma.Web.MastodonAPI.StatusView
+ def conversation(%{assigns: %{user: user}} = conn, %{"id" => participation_id}) do
+ with %Participation{} = participation <- Participation.get(participation_id),
+ true <- user.id == participation.user_id do
+ conn
+ |> put_view(ConversationView)
+ |> render("participation.json", %{participation: participation, user: user})
+ end
+ end
+
def conversation_statuses(
%{assigns: %{user: user}} = conn,
%{"id" => participation_id} = params
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index c835f06b4..f0b6a02e9 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -265,6 +265,7 @@ defmodule Pleroma.Web.Router do
scope [] do
pipe_through(:oauth_write)
get("/conversations/:id/statuses", PleromaAPIController, :conversation_statuses)
+ get("/conversations/:id", PleromaAPIController, :conversation)
patch("/conversations/:id", PleromaAPIController, :update_conversation)
end
end