Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
d56866c8
Commit
d56866c8
authored
Apr 05, 2019
by
Sadposter
Committed by
Hannah Ward
Apr 05, 2019
Browse files
Add subscribed status to user view
Added in pleroma extensions, but can be moved whenever
parent
75c4ceb4
Changes
3
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
d56866c8
...
...
@@ -999,6 +999,11 @@ def blocks?(user, %{ap_id: ap_id}) do
end
)
end
def
subscribed_to?
(
user
,
%{
ap_id:
ap_id
})
do
subs
=
user
.
info
.
subscriptions
Enum
.
member?
(
subs
,
ap_id
)
end
def
muted_users
(
user
),
do
:
Repo
.
all
(
from
(
u
in
User
,
where:
u
.
ap_id
in
^
user
.
info
.
mutes
))
...
...
lib/pleroma/web/twitter_api/views/user_view.ex
View file @
d56866c8
...
...
@@ -47,15 +47,16 @@ defp do_render("user.json", %{user: user = %User{}} = assigns) do
for_user
=
assigns
[
:for
]
image
=
User
.
avatar_url
(
user
)
|>
MediaProxy
.
url
()
{
following
,
follows_you
,
statusnet_blocking
}
=
{
following
,
follows_you
,
statusnet_blocking
,
subscribed
}
=
if
for_user
do
{
User
.
following?
(
for_user
,
user
),
User
.
following?
(
user
,
for_user
),
User
.
blocks?
(
for_user
,
user
)
User
.
blocks?
(
for_user
,
user
),
User
.
subscribed_to?
(
for_user
,
user
)
}
else
{
false
,
false
,
false
}
{
false
,
false
,
false
,
false
}
end
user_info
=
User
.
get_cached_user_info
(
user
)
...
...
@@ -116,7 +117,8 @@ defp do_render("user.json", %{user: user = %User{}} = assigns) do
"pleroma"
=>
%{
"confirmation_pending"
=>
user_info
.
confirmation_pending
,
"tags"
=>
user
.
tags
"tags"
=>
user
.
tags
,
"subscribed"
=>
subscribed
}
|>
maybe_with_activation_status
(
user
,
for_user
)
}
...
...
test/web/twitter_api/views/user_view_test.exs
View file @
d56866c8
...
...
@@ -105,7 +105,8 @@ test "A user" do
"fields"
=>
[],
"pleroma"
=>
%{
"confirmation_pending"
=>
false
,
"tags"
=>
[]
"tags"
=>
[],
"subscribed"
=>
false
}
}
...
...
@@ -153,7 +154,8 @@ test "A user for a given other follower", %{user: user} do
"fields"
=>
[],
"pleroma"
=>
%{
"confirmation_pending"
=>
false
,
"tags"
=>
[]
"tags"
=>
[],
"subscribed"
=>
false
,
}
}
...
...
@@ -202,13 +204,22 @@ test "A user that follows you", %{user: user} do
"fields"
=>
[],
"pleroma"
=>
%{
"confirmation_pending"
=>
false
,
"tags"
=>
[]
"tags"
=>
[],
"subscribed"
=>
false
}
}
assert
represented
==
UserView
.
render
(
"show.json"
,
%{
user:
follower
,
for:
user
})
end
test
"a user that you are subscribed to"
do
user
=
insert
(
:user
)
subscriber
=
insert
(
:user
)
{
:ok
,
subscriber
}
=
User
.
subscribe
(
subscriber
,
user
)
represented
=
UserView
.
render
(
"show.json"
,
%{
user:
user
,
for:
subscriber
})
assert
represented
[
"pleroma"
][
"subscribed"
]
==
true
end
test
"a user that is a moderator"
do
user
=
insert
(
:user
,
%{
info:
%{
is_moderator:
true
}})
represented
=
UserView
.
render
(
"show.json"
,
%{
user:
user
,
for:
user
})
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment