forked from mirrors/akkoma
Include requested_by in relationship (#260)
Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk> Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/260
This commit is contained in:
parent
53fbe26c80
commit
cc6a076202
2 changed files with 26 additions and 6 deletions
|
@ -94,12 +94,12 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
||||||
|
|
||||||
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 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
||||||
%{
|
%{
|
||||||
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 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
||||||
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?(
|
||||||
|
|
|
@ -347,6 +347,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest 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 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest 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"})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue