Skip to content
GitLab
Menu
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
8c9a4e8b
Commit
8c9a4e8b
authored
Dec 02, 2018
by
lain
Browse files
TwitterAPI: Implement hide_network.
parent
2a639de9
Pipeline
#4835
passed with stages
in 4 minutes and 53 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
8c9a4e8b
...
...
@@ -343,6 +343,7 @@ def external_profile(%{assigns: %{user: current_user}} = conn, %{"profileurl" =>
def
followers
(
conn
,
params
)
do
with
{
:ok
,
user
}
<-
TwitterAPI
.
get_user
(
conn
.
assigns
[
:user
],
params
),
{
:ok
,
followers
}
<-
User
.
get_followers
(
user
)
do
followers
=
if
(
user
.
info
.
hide_network
,
do
:
[],
else
:
followers
)
render
(
conn
,
UserView
,
"index.json"
,
%{
users:
followers
,
for:
conn
.
assigns
[
:user
]})
else
_e
->
bad_request_reply
(
conn
,
"Can't get followers"
)
...
...
@@ -352,6 +353,7 @@ def followers(conn, params) do
def
friends
(
conn
,
params
)
do
with
{
:ok
,
user
}
<-
TwitterAPI
.
get_user
(
conn
.
assigns
[
:user
],
params
),
{
:ok
,
friends
}
<-
User
.
get_friends
(
user
)
do
friends
=
if
(
user
.
info
.
hide_network
,
do
:
[],
else
:
friends
)
render
(
conn
,
UserView
,
"index.json"
,
%{
users:
friends
,
for:
conn
.
assigns
[
:user
]})
else
_e
->
bad_request_reply
(
conn
,
"Can't get friends"
)
...
...
test/web/twitter_api/twitter_api_controller_test.exs
View file @
8c9a4e8b
...
...
@@ -855,6 +855,48 @@ test "it returns a user's followers", %{conn: conn} do
result
=
json_response
(
conn
,
200
)
assert
Enum
.
sort
(
expected
)
==
Enum
.
sort
(
result
)
end
test
"it returns a given user's followers with user_id"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
follower_one
=
insert
(
:user
)
follower_two
=
insert
(
:user
)
not_follower
=
insert
(
:user
)
{
:ok
,
follower_one
}
=
User
.
follow
(
follower_one
,
user
)
{
:ok
,
follower_two
}
=
User
.
follow
(
follower_two
,
user
)
conn
=
conn
|>
assign
(
:user
,
not_follower
)
|>
get
(
"/api/statuses/followers"
,
%{
"user_id"
=>
user
.
id
})
assert
MapSet
.
equal?
(
MapSet
.
new
(
json_response
(
conn
,
200
)),
MapSet
.
new
(
UserView
.
render
(
"index.json"
,
%{
users:
[
follower_one
,
follower_two
],
for:
not_follower
})
)
)
end
test
"it returns empty for a hidden network"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
,
%{
info:
%{
hide_network:
true
}})
follower_one
=
insert
(
:user
)
follower_two
=
insert
(
:user
)
not_follower
=
insert
(
:user
)
{
:ok
,
follower_one
}
=
User
.
follow
(
follower_one
,
user
)
{
:ok
,
follower_two
}
=
User
.
follow
(
follower_two
,
user
)
conn
=
conn
|>
assign
(
:user
,
not_follower
)
|>
get
(
"/api/statuses/followers"
,
%{
"user_id"
=>
user
.
id
})
assert
[]
==
json_response
(
conn
,
200
)
end
end
describe
"GET /api/statuses/friends"
do
...
...
@@ -899,6 +941,23 @@ test "it returns a given user's friends with user_id", %{conn: conn} do
)
end
test
"it returns empty for a hidden network"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
,
%{
info:
%{
hide_network:
true
}})
followed_one
=
insert
(
:user
)
followed_two
=
insert
(
:user
)
not_followed
=
insert
(
:user
)
{
:ok
,
user
}
=
User
.
follow
(
user
,
followed_one
)
{
:ok
,
user
}
=
User
.
follow
(
user
,
followed_two
)
conn
=
conn
|>
assign
(
:user
,
not_followed
)
|>
get
(
"/api/statuses/friends"
,
%{
"user_id"
=>
user
.
id
})
assert
[]
==
json_response
(
conn
,
200
)
end
test
"it returns a given user's friends with screen_name"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
followed_one
=
insert
(
:user
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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