diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-09-01 19:39:34 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-09-11 14:10:19 -0500 |
commit | f13b52a703d5c60cf12b2fff69f458e5c467c783 (patch) | |
tree | 68d2e1aaa4fb30a24553f27cbc340729d4d8e07f /lib/pleroma/web/admin_api/controllers | |
parent | c41430b23eaf3fd15b227e66215aa2a4ff31dfdb (diff) | |
download | pleroma-f13b52a703d5c60cf12b2fff69f458e5c467c783.tar.gz |
AdminAPI: list messages in a chat
Diffstat (limited to 'lib/pleroma/web/admin_api/controllers')
-rw-r--r-- | lib/pleroma/web/admin_api/controllers/chat_controller.ex | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/pleroma/web/admin_api/controllers/chat_controller.ex b/lib/pleroma/web/admin_api/controllers/chat_controller.ex index bcce824d2..b423188d7 100644 --- a/lib/pleroma/web/admin_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/chat_controller.ex @@ -6,9 +6,13 @@ defmodule Pleroma.Web.AdminAPI.ChatController do use Pleroma.Web, :controller alias Pleroma.Activity + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference alias Pleroma.ModerationLog + alias Pleroma.Pagination alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Web.CommonAPI + alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView require Logger @@ -16,6 +20,11 @@ defmodule Pleroma.Web.AdminAPI.ChatController do plug( OAuthScopesPlug, + %{scopes: ["read:chats"], admin: true} when action in [:messages] + ) + + plug( + OAuthScopesPlug, %{scopes: ["write:chats"], admin: true} when action in [:delete_message] ) @@ -34,4 +43,22 @@ defmodule Pleroma.Web.AdminAPI.ChatController do json(conn, %{}) end end + + def messages(conn, %{id: id} = params) do + with %Chat{} = chat <- Chat.get_by_id(id) do + cm_refs = + chat + |> MessageReference.for_chat_query() + |> Pagination.fetch_paginated(params) + + conn + |> put_view(MessageReferenceView) + |> render("index.json", chat_message_references: cm_refs) + else + _ -> + conn + |> put_status(:not_found) + |> json(%{error: "not found"}) + end + end end |