From e90f8f6c4bdbc92255af5d6b048cf52499aad756 Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 30 Mar 2018 15:32:43 +0200 Subject: [PATCH] TwApi ActivityView: Add delete activities. --- .../web/twitter_api/views/activity_view.ex | 20 ++++++++++++++ .../twitter_api/views/activity_view_test.exs | 27 ++++++++++++++++++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/twitter_api/views/activity_view.ex b/lib/pleroma/web/twitter_api/views/activity_view.ex index 7dd873796..7c2501e16 100644 --- a/lib/pleroma/web/twitter_api/views/activity_view.ex +++ b/lib/pleroma/web/twitter_api/views/activity_view.ex @@ -8,6 +8,26 @@ defmodule Pleroma.Web.TwitterAPI.ActivityView do alias Pleroma.Activity alias Pleroma.Formatter + def render("activity.json", %{activity: %{data: %{"type" => "Delete"}} = activity} = opts) do + user = User.get_cached_by_ap_id(activity.data["actor"]) + created_at = activity.data["published"] |> Utils.date_to_asctime() + + %{ + "id" => activity.id, + "uri" => activity.data["object"], + "user" => UserView.render("show.json", %{user: user, for: opts[:for]}), + "attentions" => [], + "statusnet_html" => "deleted notice {{tag", + "text" => "deleted notice {{tag", + "is_local" => activity.local, + "is_post_verb" => false, + "created_at" => created_at, + "in_reply_to_status_id" => nil, + "external_url" => activity.data["id"], + "activity_type" => "delete" + } + end + def render("activity.json", %{activity: %{data: %{"type" => "Follow"}} = activity} = opts) do user = User.get_cached_by_ap_id(activity.data["actor"]) created_at = activity.data["published"] || DateTime.to_iso8601(activity.inserted_at) diff --git a/test/web/twitter_api/views/activity_view_test.exs b/test/web/twitter_api/views/activity_view_test.exs index eca69cdfe..cb8f60fcf 100644 --- a/test/web/twitter_api/views/activity_view_test.exs +++ b/test/web/twitter_api/views/activity_view_test.exs @@ -126,7 +126,6 @@ test "A follow activity" do user = insert(:user) other_user = insert(:user, %{nickname: "shp"}) - {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!"}) {:ok, follower} = User.follow(user, other_user) {:ok, follow} = ActivityPub.follow(follower, other_user) @@ -148,4 +147,30 @@ test "A follow activity" do assert result == expected end + + test "a delete activity" do + user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!"}) + {:ok, delete} = CommonAPI.delete(activity.id, user) + + result = ActivityView.render("activity.json", activity: delete) + + expected = %{ + "activity_type" => "delete", + "attentions" => [], + "created_at" => delete.data["published"] |> Utils.date_to_asctime(), + "external_url" => delete.data["id"], + "id" => delete.id, + "in_reply_to_status_id" => nil, + "is_local" => true, + "is_post_verb" => false, + "statusnet_html" => "deleted notice {{tag", + "text" => "deleted notice {{tag", + "uri" => delete.data["object"], + "user" => UserView.render("show.json", user: user) + } + + assert result == expected + end end