Browse Source

Fix undo activity.

tags/v0.9.9
Roger Braun 7 years ago
parent
commit
7e9647b146
2 changed files with 31 additions and 0 deletions
  1. +20
    -0
      lib/pleroma/web/twitter_api/representers/activity_representer.ex
  2. +11
    -0
      test/web/twitter_api/representers/activity_representer_test.exs

+ 20
- 0
lib/pleroma/web/twitter_api/representers/activity_representer.ex View File

@@ -72,6 +72,26 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
}
end

# TODO:
# Make this more proper. Just a placeholder to not break the frontend.
def to_map(%Activity{data: %{"type" => "Undo", "published" => created_at, "object" => undid_activity }} = activity, %{user: user} = opts) do
created_at = created_at |> Utils.date_to_asctime

text = "#{user.nickname} undid the action at #{undid_activity}"
%{
"id" => activity.id,
"user" => UserView.render("show.json", %{user: user, for: opts[:for]}),
"attentions" => [],
"statusnet_html" => text,
"text" => text,
"is_local" => activity.local,
"is_post_verb" => false,
"created_at" => created_at,
"in_reply_to_status_id" => nil,
"external_url" => activity.data["id"]
}
end

def to_map(%Activity{data: %{"object" => %{"content" => content} = object}} = activity, %{user: user} = opts) do
created_at = object["published"] |> Utils.date_to_asctime
like_count = object["like_count"] || 0


+ 11
- 0
test/web/twitter_api/representers/activity_representer_test.exs View File

@@ -132,4 +132,15 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do

assert ActivityRepresenter.to_map(activity, %{user: user, for: follower, mentioned: [mentioned_user]}) == expected_status
end

test "an undo for a follow" do
follower = insert(:user)
followed = insert(:user)

{:ok, follow} = ActivityPub.follow(follower, followed)
{:ok, unfollow} = ActivityPub.unfollow(follower, followed)

map = ActivityRepresenter.to_map(unfollow, %{user: follower})
assert map["is_post_verb"] == false
end
end

Loading…
Cancel
Save