Include requested_by in relationship (#260)

Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Reviewed-on: AkkomaGang/akkoma#260
This commit is contained in:
floatingghost 2022-11-10 03:16:32 +00:00
parent 53fbe26c80
commit cc6a076202
2 changed files with 26 additions and 6 deletions

View file

@ -94,12 +94,12 @@ def render(
followed_by = followed_by =
if following_relationships do if following_relationships do
case FollowingRelationship.find(following_relationships, target, reading_user) do target_to_user_following_relation =
%{state: :follow_accept} -> true FollowingRelationship.find(following_relationships, target, reading_user)
_ -> false
end User.get_follow_state(target, reading_user, target_to_user_following_relation)
else else
User.following?(target, reading_user) User.get_follow_state(target, reading_user)
end end
subscribing = subscribing =
@ -115,7 +115,7 @@ def render(
%{ %{
id: to_string(target.id), id: to_string(target.id),
following: follow_state == :follow_accept, following: follow_state == :follow_accept,
followed_by: followed_by, followed_by: followed_by == :follow_accept,
blocking: blocking:
UserRelationship.exists?( UserRelationship.exists?(
user_relationships, user_relationships,
@ -151,6 +151,7 @@ def render(
subscribing: subscribing, subscribing: subscribing,
notifying: subscribing, notifying: subscribing,
requested: follow_state == :follow_pending, requested: follow_state == :follow_pending,
requested_by: followed_by == :follow_pending,
domain_blocking: User.blocks_domain?(reading_user, target), domain_blocking: User.blocks_domain?(reading_user, target),
showing_reblogs: showing_reblogs:
not UserRelationship.exists?( not UserRelationship.exists?(

View file

@ -347,6 +347,7 @@ defp test_relationship_rendering(user, other_user, expected_result) do
subscribing: false, subscribing: false,
notifying: false, notifying: false,
requested: false, requested: false,
requested_by: false,
domain_blocking: false, domain_blocking: false,
showing_reblogs: true, showing_reblogs: true,
endorsed: false, endorsed: false,
@ -432,6 +433,24 @@ test "represent a relationship for the user with a pending follow request" do
end end
end end
test "represent a relationship for a user with an inbound pending follow request" do
follower = insert(:user)
followed = insert(:user, is_locked: true)
{:ok, follower, followed, _} = CommonAPI.follow(follower, followed)
follower = User.get_cached_by_id(follower.id)
followed = User.get_cached_by_id(followed.id)
expected =
Map.merge(
@blank_response,
%{requested_by: true, followed_by: false, id: to_string(follower.id)}
)
test_relationship_rendering(followed, follower, expected)
end
test "returns the settings store if the requesting user is the represented user and it's requested specifically" do test "returns the settings store if the requesting user is the represented user and it's requested specifically" do
user = insert(:user, pleroma_settings_store: %{fe: "test"}) user = insert(:user, pleroma_settings_store: %{fe: "test"})