Browse Source

Add error response to self-repeats

tags/v0.9.9
dtluna 7 years ago
parent
commit
f723b23691
2 changed files with 23 additions and 8 deletions
  1. +9
    -4
      lib/pleroma/web/twitter_api/twitter_api_controller.ex
  2. +14
    -4
      test/web/twitter_api/twitter_api_controller_test.exs

+ 9
- 4
lib/pleroma/web/twitter_api/twitter_api_controller.ex View File

@@ -163,11 +163,16 @@ defmodule Pleroma.Web.TwitterAPI.Controller do

def retweet(%{assigns: %{user: user}} = conn, %{"id" => id}) do
activity = Repo.get(Activity, id)
{:ok, status} = TwitterAPI.retweet(user, activity)
response = Poison.encode!(status)
if activity.data["actor"] == user.ap_id do
bad_request_reply(conn, "You cannot repeat your own notice.")
else
{:ok, status} = TwitterAPI.retweet(user, activity)
response = Poison.encode!(status)

conn
|> json_reply(200, response)
conn

|> json_reply(200, response)
end
end

def register(conn, params) do


+ 14
- 4
test/web/twitter_api/twitter_api_controller_test.exs View File

@@ -328,11 +328,21 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
test "with credentials", %{conn: conn, user: current_user} do
note_activity = insert(:note_activity)

conn = conn
|> with_credentials(current_user.nickname, "test")
|> post("/api/statuses/retweet/#{note_activity.id}.json")
request_path = "/api/statuses/retweet/#{note_activity.id}.json"

assert json_response(conn, 200)
user = Repo.get_by(User, ap_id: note_activity.data["actor"])
response = conn
|> with_credentials(user.nickname, "test")
|> post(request_path)
assert json_response(response, 400) == %{"error" => "You cannot repeat your own notice.",
"request" => request_path}

response = conn
|> with_credentials(current_user.nickname, "test")
|> post(request_path)
activity = Repo.get(Activity, note_activity.id)
current_user = Repo.get_by(User, ap_id: note_activity.data["actor"])
assert json_response(response, 200) == ActivityRepresenter.to_map(activity, %{user: current_user})
end
end



Loading…
Cancel
Save