From ca87b60fa8b8a5f3b5938b3906c28896fb715415 Mon Sep 17 00:00:00 2001 From: Lain Soykaf Date: Wed, 24 Nov 2021 11:00:47 -0500 Subject: [PATCH] Fix the timeline of users with a `nil` pinned_objects field. --- lib/pleroma/web/activity_pub/activity_pub.ex | 2 +- .../controllers/account_controller_test.exs | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 8324ca22c..b99fcb646 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -641,7 +641,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do |> Map.put(:type, ["Create", "Announce"]) |> Map.put(:user, reading_user) |> Map.put(:actor_id, user.ap_id) - |> Map.put(:pinned_object_ids, Map.keys(user.pinned_objects)) + |> Map.put(:pinned_object_ids, Map.keys(user.pinned_objects || %{})) params = if User.blocks?(reading_user, user) do diff --git a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs index a92a58224..9b2ebf133 100644 --- a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs @@ -267,6 +267,17 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do describe "user timelines" do setup do: oauth_access(["read:statuses"]) + test "works with a user who has an empty pinned objects field", %{conn: conn} do + user = insert(:user, pinned_objects: nil) + + assert resp = + conn + |> get("/api/v1/accounts/#{user.id}/statuses") + |> json_response_and_validate_schema(200) + + assert [] == resp + end + test "works with announces that are just addressed to public", %{conn: conn} do user = insert(:user, ap_id: "https://honktest/u/test", local: false) other_user = insert(:user)