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
1969773f
Commit
1969773f
authored
Dec 18, 2017
by
eal
Browse files
Fix follower/following lists.
Add tests.
parent
92230383
Pipeline
#445
failed with stage
in 3 minutes and 29 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/router.ex
View file @
1969773f
...
...
@@ -142,6 +142,8 @@ def user_fetcher(username) do
get
"/qvitter/statuses/user_timeline"
,
TwitterAPI
.
Controller
,
:user_timeline
get
"/users/show"
,
TwitterAPI
.
Controller
,
:show_user
get
"/statuses/followers"
,
TwitterAPI
.
Controller
,
:followers
get
"/statuses/friends"
,
TwitterAPI
.
Controller
,
:friends
get
"/statuses/show/:id"
,
TwitterAPI
.
Controller
,
:fetch_status
get
"/statusnet/conversation/:id"
,
TwitterAPI
.
Controller
,
:fetch_conversation
...
...
@@ -188,8 +190,6 @@ def user_fetcher(username) do
post
"/qvitter/update_avatar"
,
TwitterAPI
.
Controller
,
:update_avatar
get
"/statuses/followers"
,
TwitterAPI
.
Controller
,
:followers
get
"/statuses/friends"
,
TwitterAPI
.
Controller
,
:friends
get
"/friends/ids"
,
TwitterAPI
.
Controller
,
:friends_ids
get
"/friendships/no_retweets/ids"
,
TwitterAPI
.
Controller
,
:empty_array
...
...
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
1969773f
...
...
@@ -263,16 +263,18 @@ def update_most_recent_notification(%{assigns: %{user: user}} = conn, %{"id" =>
end
end
def
followers
(%{
assigns:
%{
user:
user
}}
=
conn
,
_params
)
do
with
{
:ok
,
followers
}
<-
User
.
get_followers
(
user
)
do
def
followers
(
conn
,
params
)
do
with
{
:ok
,
user
}
<-
TwitterAPI
.
get_user
(
conn
.
assigns
.
user
,
params
),
{
:ok
,
followers
}
<-
User
.
get_followers
(
user
)
do
render
(
conn
,
UserView
,
"index.json"
,
%{
users:
followers
,
for:
user
})
else
_e
->
bad_request_reply
(
conn
,
"Can't get followers"
)
end
end
def
friends
(%{
assigns:
%{
user:
user
}}
=
conn
,
_params
)
do
with
{
:ok
,
friends
}
<-
User
.
get_friends
(
user
)
do
def
friends
(
conn
,
params
)
do
with
{
:ok
,
user
}
<-
TwitterAPI
.
get_user
(
conn
.
assigns
.
user
,
params
),
{
:ok
,
friends
}
<-
User
.
get_friends
(
user
)
do
render
(
conn
,
UserView
,
"index.json"
,
%{
users:
friends
,
for:
user
})
else
_e
->
bad_request_reply
(
conn
,
"Can't get friends"
)
...
...
test/web/twitter_api/twitter_api_controller_test.exs
View file @
1969773f
...
...
@@ -518,7 +518,7 @@ test "it returns a user's followers", %{conn: conn} do
end
describe
"GET /api/statuses/friends"
do
test
"it returns
a
user's friends"
,
%{
conn:
conn
}
do
test
"it returns
the logged in
user's friends"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
followed_one
=
insert
(
:user
)
followed_two
=
insert
(
:user
)
...
...
@@ -533,6 +533,36 @@ test "it returns a user's friends", %{conn: conn} do
assert
MapSet
.
equal?
(
MapSet
.
new
(
json_response
(
conn
,
200
)),
MapSet
.
new
(
UserView
.
render
(
"index.json"
,
%{
users:
[
followed_one
,
followed_two
],
for:
user
})))
end
test
"it returns a given user's friends with user_id"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
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
|>
get
(
"/api/statuses/friends"
,
%{
"user_id"
=>
user
.
id
})
assert
MapSet
.
equal?
(
MapSet
.
new
(
json_response
(
conn
,
200
)),
MapSet
.
new
(
UserView
.
render
(
"index.json"
,
%{
users:
[
followed_one
,
followed_two
],
for:
user
})))
end
test
"it returns a given user's friends with screen_name"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
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
|>
get
(
"/api/statuses/friends"
,
%{
"screen_name"
=>
user
.
nickname
})
assert
MapSet
.
equal?
(
MapSet
.
new
(
json_response
(
conn
,
200
)),
MapSet
.
new
(
UserView
.
render
(
"index.json"
,
%{
users:
[
followed_one
,
followed_two
],
for:
user
})))
end
end
describe
"GET /friends/ids"
do
...
...
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