diff options
author | lain <lain@soykaf.club> | 2019-09-04 12:20:35 -0500 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-09-04 12:20:35 -0500 |
commit | 99ea990a16a417cd316b3464ef380746171ecb55 (patch) | |
tree | 3333ac1cf3d9873c9c48df2cbb54a562087f2f0c /lib | |
parent | 9bc12b88b3b4b90ee1b55ebf49a13665a751ef1a (diff) | |
download | pleroma-99ea990a16a417cd316b3464ef380746171ecb55.tar.gz |
PleromaAPIController: Add emoji reactions.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/pleroma_api/pleroma_api_controller.ex | 11 | ||||
-rw-r--r-- | lib/pleroma/web/router.ex | 1 |
2 files changed, 12 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 b6d2bf86b..740ea4747 100644 --- a/lib/pleroma/web/pleroma_api/pleroma_api_controller.ex +++ b/lib/pleroma/web/pleroma_api/pleroma_api_controller.ex @@ -7,11 +7,22 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIController do import Pleroma.Web.ControllerHelper, only: [add_link_headers: 7] + alias Pleroma.Activity alias Pleroma.Conversation.Participation alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.ConversationView alias Pleroma.Web.MastodonAPI.StatusView + def react_with_emoji(%{assigns: %{user: user}} = conn, %{"id" => activity_id, "emoji" => emoji}) do + with {:ok, _activity, _object} <- CommonAPI.react_with_emoji(activity_id, user, emoji), + activity = Activity.get_by_id(activity_id) do + conn + |> put_view(StatusView) + |> render("status.json", %{activity: activity, for: user, as: :activity}) + end + end + def conversation(%{assigns: %{user: user}} = conn, %{"id" => participation_id}) do with %Participation{} = participation <- Participation.get(participation_id), true <- user.id == participation.user_id do diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 969dc66fd..6cca54211 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -277,6 +277,7 @@ defmodule Pleroma.Web.Router do scope [] do pipe_through(:oauth_write) patch("/conversations/:id", PleromaAPIController, :update_conversation) + post("/statuses/:id/react_with_emoji", PleromaAPIController, :react_with_emoji) end end |