Browse Source

EmojiReactionController: Return more appropriate error.

revert-6dd1575c
lain 4 years ago
parent
commit
bcb549531f
3 changed files with 12 additions and 1 deletions
  1. +3
    -1
      lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex
  2. +2
    -0
      lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex
  3. +7
    -0
      test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs

+ 3
- 1
lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex View File

@@ -6,6 +6,7 @@ defmodule Pleroma.Web.ApiSpec.EmojiReactionOperation do
alias OpenApiSpex.Operation
alias OpenApiSpex.Schema
alias Pleroma.Web.ApiSpec.Schemas.Account
alias Pleroma.Web.ApiSpec.Schemas.ApiError
alias Pleroma.Web.ApiSpec.Schemas.FlakeID
alias Pleroma.Web.ApiSpec.Schemas.Status

@@ -46,7 +47,8 @@ defmodule Pleroma.Web.ApiSpec.EmojiReactionOperation do
security: [%{"oAuth" => ["write:statuses"]}],
operationId: "EmojiReactionController.create",
responses: %{
200 => Operation.response("Status", "application/json", Status)
200 => Operation.response("Status", "application/json", Status),
400 => Operation.response("Bad Request", "application/json", ApiError)
}
}
end


+ 2
- 0
lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex View File

@@ -22,6 +22,8 @@ defmodule Pleroma.Web.PleromaAPI.EmojiReactionController do

defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.EmojiReactionOperation

action_fallback(Pleroma.Web.MastodonAPI.FallbackController)

def index(%{assigns: %{user: user}} = conn, %{id: activity_id} = params) do
with %Activity{} = activity <- Activity.get_by_id_with_object(activity_id),
%Object{data: %{"reactions" => reactions}} when is_list(reactions) <-


+ 7
- 0
test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs View File

@@ -33,6 +33,13 @@ defmodule Pleroma.Web.PleromaAPI.EmojiReactionControllerTest do
assert result["pleroma"]["emoji_reactions"] == [
%{"name" => "☕", "count" => 1, "me" => true}
]

# Reacting with a non-emoji
assert conn
|> assign(:user, other_user)
|> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"]))
|> put("/api/v1/pleroma/statuses/#{activity.id}/reactions/x")
|> json_response_and_validate_schema(400)
end

test "DELETE /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do


Loading…
Cancel
Save