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
3ea44764
Commit
3ea44764
authored
Dec 05, 2018
by
lain
Browse files
MastodonAPI: Show users their own network.
parent
fdac2150
Pipeline
#4996
passed with stages
in 2 minutes and 31 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
View file @
3ea44764
...
...
@@ -502,18 +502,30 @@ def hashtag_timeline(%{assigns: %{user: user}} = conn, params) do
|>
render
(
StatusView
,
"index.json"
,
%{
activities:
activities
,
for:
user
,
as:
:activity
})
end
def
followers
(
conn
,
%{
"id"
=>
id
})
do
def
followers
(
%{
assigns:
%{
user:
for_user
}}
=
conn
,
%{
"id"
=>
id
})
do
with
%
User
{}
=
user
<-
Repo
.
get
(
User
,
id
),
{
:ok
,
followers
}
<-
User
.
get_followers
(
user
)
do
followers
=
if
(
user
.
info
.
hide_network
,
do
:
[],
else
:
followers
)
followers
=
cond
do
for_user
&&
user
.
id
==
for_user
.
id
->
followers
user
.
info
.
hide_network
->
[]
true
->
followers
end
render
(
conn
,
AccountView
,
"accounts.json"
,
%{
users:
followers
,
as:
:user
})
end
end
def
following
(
conn
,
%{
"id"
=>
id
})
do
def
following
(
%{
assigns:
%{
user:
for_user
}}
=
conn
,
%{
"id"
=>
id
})
do
with
%
User
{}
=
user
<-
Repo
.
get
(
User
,
id
),
{
:ok
,
followers
}
<-
User
.
get_friends
(
user
)
do
followers
=
if
(
user
.
info
.
hide_network
,
do
:
[],
else
:
followers
)
followers
=
cond
do
for_user
&&
user
.
id
==
for_user
.
id
->
followers
user
.
info
.
hide_network
->
[]
true
->
followers
end
render
(
conn
,
AccountView
,
"accounts.json"
,
%{
users:
followers
,
as:
:user
})
end
end
...
...
test/web/mastodon_api/mastodon_api_controller_test.exs
View file @
3ea44764
...
...
@@ -1014,6 +1014,19 @@ test "getting followers, hide_network", %{conn: conn} do
assert
[]
==
json_response
(
conn
,
200
)
end
test
"getting followers, hide_network, same user requesting"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
other_user
=
insert
(
:user
,
%{
info:
%{
hide_network:
true
}})
{
:ok
,
user
}
=
User
.
follow
(
user
,
other_user
)
conn
=
conn
|>
assign
(
:user
,
other_user
)
|>
get
(
"/api/v1/accounts/
#{
other_user
.
id
}
/followers"
)
refute
[]
==
json_response
(
conn
,
200
)
end
test
"getting following"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
other_user
=
insert
(
:user
)
...
...
@@ -1039,6 +1052,19 @@ test "getting following, hide_network", %{conn: conn} do
assert
[]
==
json_response
(
conn
,
200
)
end
test
"getting following, hide_network, same user requesting"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
,
%{
info:
%{
hide_network:
true
}})
other_user
=
insert
(
:user
)
{
:ok
,
user
}
=
User
.
follow
(
user
,
other_user
)
conn
=
conn
|>
assign
(
:user
,
user
)
|>
get
(
"/api/v1/accounts/
#{
user
.
id
}
/following"
)
refute
[]
==
json_response
(
conn
,
200
)
end
test
"following / unfollowing a user"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
other_user
=
insert
(
: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