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
fdac2150
Commit
fdac2150
authored
Dec 05, 2018
by
lain
Browse files
TwitterAPI: Show users their own network.
parent
839526a9
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
fdac2150
...
...
@@ -340,20 +340,32 @@ def external_profile(%{assigns: %{user: current_user}} = conn, %{"profileurl" =>
end
end
def
followers
(
conn
,
params
)
do
with
{
:ok
,
user
}
<-
TwitterAPI
.
get_user
(
conn
.
assigns
[
:
user
]
,
params
),
def
followers
(
%{
assigns:
%{
user:
for_user
}}
=
conn
,
params
)
do
with
{
:ok
,
user
}
<-
TwitterAPI
.
get_user
(
for_
user
,
params
),
{
: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
,
UserView
,
"index.json"
,
%{
users:
followers
,
for:
conn
.
assigns
[
:user
]})
else
_e
->
bad_request_reply
(
conn
,
"Can't get followers"
)
end
end
def
friends
(
conn
,
params
)
do
def
friends
(
%{
assigns:
%{
user:
for_user
}}
=
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
)
friends
=
cond
do
for_user
&&
user
.
id
==
for_user
.
id
->
friends
user
.
info
.
hide_network
->
[]
true
->
friends
end
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 @
fdac2150
...
...
@@ -897,6 +897,25 @@ test "it returns empty for a hidden network", %{conn: conn} do
assert
[]
==
json_response
(
conn
,
200
)
end
test
"it returns the followers for a hidden network if requested by the user themselves"
,
%{
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
,
user
)
|>
get
(
"/api/statuses/followers"
,
%{
"user_id"
=>
user
.
id
})
refute
[]
==
json_response
(
conn
,
200
)
end
end
describe
"GET /api/statuses/friends"
do
...
...
@@ -958,6 +977,25 @@ test "it returns empty for a hidden network", %{conn: conn} do
assert
[]
==
json_response
(
conn
,
200
)
end
test
"it returns friends for a hidden network if the user themselves request it"
,
%{
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
,
user
)
|>
get
(
"/api/statuses/friends"
,
%{
"user_id"
=>
user
.
id
})
refute
[]
==
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
Markdown
is supported
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