summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaniini <ariadne@dereferenced.org>2019-10-04 20:07:47 +0000
committerkaniini <ariadne@dereferenced.org>2019-10-04 20:07:47 +0000
commit9c47d8571c6c46503d9bb836aea933eda6e9e0a5 (patch)
tree432b2ad3ded271a016e17c3b20ac692e9a1bfa9b
parente0c0ea9f1314b1cf1d314d8607f143b7500e3328 (diff)
parent83631752af053b02a05abe0e9f7d6c7cf9a5154a (diff)
Merge branch 'issue/1296' into 'develop'
[#1296] removed legacy api: "/objects/:uuid/likes" See merge request pleroma/pleroma!1788
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub_controller.ex32
-rw-r--r--lib/pleroma/web/activity_pub/utils.ex10
-rw-r--r--lib/pleroma/web/activity_pub/views/object_view.ex36
-rw-r--r--lib/pleroma/web/router.ex1
-rw-r--r--test/web/activity_pub/activity_pub_controller_test.exs63
5 files changed, 0 insertions, 142 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex
index 7cd13b4b8..080030eb5 100644
--- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex
@@ -82,38 +82,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do
conn
end
- def object_likes(conn, %{"uuid" => uuid, "page" => page}) do
- with ap_id <- o_status_url(conn, :object, uuid),
- %Object{} = object <- Object.get_cached_by_ap_id(ap_id),
- {_, true} <- {:public?, Visibility.is_public?(object)},
- likes <- Utils.get_object_likes(object) do
- {page, _} = Integer.parse(page)
-
- conn
- |> put_resp_content_type("application/activity+json")
- |> put_view(ObjectView)
- |> render("likes.json", %{ap_id: ap_id, likes: likes, page: page})
- else
- {:public?, false} ->
- {:error, :not_found}
- end
- end
-
- def object_likes(conn, %{"uuid" => uuid}) do
- with ap_id <- o_status_url(conn, :object, uuid),
- %Object{} = object <- Object.get_cached_by_ap_id(ap_id),
- {_, true} <- {:public?, Visibility.is_public?(object)},
- likes <- Utils.get_object_likes(object) do
- conn
- |> put_resp_content_type("application/activity+json")
- |> put_view(ObjectView)
- |> render("likes.json", %{ap_id: ap_id, likes: likes})
- else
- {:public?, false} ->
- {:error, :not_found}
- end
- end
-
def activity(conn, %{"uuid" => uuid}) do
with ap_id <- o_status_url(conn, :activity, uuid),
%Activity{} = activity <- Activity.normalize(ap_id),
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex
index ac5550671..272011a9f 100644
--- a/lib/pleroma/web/activity_pub/utils.ex
+++ b/lib/pleroma/web/activity_pub/utils.ex
@@ -251,16 +251,6 @@ defmodule Pleroma.Web.ActivityPub.Utils do
|> Repo.one()
end
- @doc """
- Returns like activities targeting an object
- """
- def get_object_likes(%{data: %{"id" => id}}) do
- id
- |> Activity.Queries.by_object_id()
- |> Activity.Queries.by_type("Like")
- |> Repo.all()
- end
-
@spec make_like_data(User.t(), map(), String.t()) :: map()
def make_like_data(
%User{ap_id: ap_id} = actor,
diff --git a/lib/pleroma/web/activity_pub/views/object_view.ex b/lib/pleroma/web/activity_pub/views/object_view.ex
index 88c55acdd..d8a3ec288 100644
--- a/lib/pleroma/web/activity_pub/views/object_view.ex
+++ b/lib/pleroma/web/activity_pub/views/object_view.ex
@@ -37,40 +37,4 @@ defmodule Pleroma.Web.ActivityPub.ObjectView do
Map.merge(base, additional)
end
-
- def render("likes.json", %{ap_id: ap_id, likes: likes, page: page}) do
- collection(likes, "#{ap_id}/likes", page)
- |> Map.merge(Pleroma.Web.ActivityPub.Utils.make_json_ld_header())
- end
-
- def render("likes.json", %{ap_id: ap_id, likes: likes}) do
- %{
- "id" => "#{ap_id}/likes",
- "type" => "OrderedCollection",
- "totalItems" => length(likes),
- "first" => collection(likes, "#{ap_id}/likes", 1)
- }
- |> Map.merge(Pleroma.Web.ActivityPub.Utils.make_json_ld_header())
- end
-
- def collection(collection, iri, page) do
- offset = (page - 1) * 10
- items = Enum.slice(collection, offset, 10)
- items = Enum.map(items, fn object -> Transmogrifier.prepare_object(object.data) end)
- total = length(collection)
-
- map = %{
- "id" => "#{iri}?page=#{page}",
- "type" => "OrderedCollectionPage",
- "partOf" => iri,
- "totalItems" => total,
- "orderedItems" => items
- }
-
- if offset + length(items) < total do
- Map.put(map, "next", "#{iri}?page=#{page + 1}")
- else
- map
- end
- end
end
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index f91af8137..405ae724e 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -580,7 +580,6 @@ defmodule Pleroma.Web.Router do
pipe_through(:ostatus)
get("/users/:nickname/outbox", ActivityPubController, :outbox)
- get("/objects/:uuid/likes", ActivityPubController, :object_likes)
end
pipeline :activitypub_client do
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs
index 1ffa91b70..6a3e48b5e 100644
--- a/test/web/activity_pub/activity_pub_controller_test.exs
+++ b/test/web/activity_pub/activity_pub_controller_test.exs
@@ -225,69 +225,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
end
end
- describe "/object/:uuid/likes" do
- setup do
- like = insert(:like_activity)
- like_object_ap_id = Object.normalize(like).data["id"]
-
- uuid =
- like_object_ap_id
- |> String.split("/")
- |> List.last()
-
- [id: like.data["id"], uuid: uuid]
- end
-
- test "it returns the like activities in a collection", %{conn: conn, id: id, uuid: uuid} do
- result =
- conn
- |> put_req_header("accept", "application/activity+json")
- |> get("/objects/#{uuid}/likes")
- |> json_response(200)
-
- assert List.first(result["first"]["orderedItems"])["id"] == id
- assert result["type"] == "OrderedCollection"
- assert result["totalItems"] == 1
- refute result["first"]["next"]
- end
-
- test "it does not crash when page number is exceeded total pages", %{conn: conn, uuid: uuid} do
- result =
- conn
- |> put_req_header("accept", "application/activity+json")
- |> get("/objects/#{uuid}/likes?page=2")
- |> json_response(200)
-
- assert result["type"] == "OrderedCollectionPage"
- assert result["totalItems"] == 1
- refute result["next"]
- assert Enum.empty?(result["orderedItems"])
- end
-
- test "it contains the next key when likes count is more than 10", %{conn: conn} do
- note = insert(:note_activity)
- insert_list(11, :like_activity, note_activity: note)
-
- uuid =
- note
- |> Object.normalize()
- |> Map.get(:data)
- |> Map.get("id")
- |> String.split("/")
- |> List.last()
-
- result =
- conn
- |> put_req_header("accept", "application/activity+json")
- |> get("/objects/#{uuid}/likes?page=1")
- |> json_response(200)
-
- assert result["totalItems"] == 11
- assert length(result["orderedItems"]) == 10
- assert result["next"]
- end
- end
-
describe "/activities/:uuid" do
test "it returns a json representation of the activity", %{conn: conn} do
activity = insert(:note_activity)