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
94a394e3
Commit
94a394e3
authored
Jul 20, 2017
by
lain
Browse files
Add followers endpoint.
parent
44aef218
Changes
4
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/router.ex
View file @
94a394e3
...
...
@@ -70,6 +70,8 @@ def user_fetcher(username) do
post
"/favorites/destroy/:id"
,
TwitterAPI
.
Controller
,
:unfavorite
post
"/qvitter/update_avatar"
,
TwitterAPI
.
Controller
,
:update_avatar
get
"/statuses/followers"
,
TwitterAPI
.
Controller
,
:followers
end
pipeline
:ostatus
do
...
...
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
94a394e3
...
...
@@ -210,6 +210,14 @@ 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
render
(
conn
,
UserView
,
"index.json"
,
%{
users:
followers
,
for:
user
})
else
_e
->
bad_request_reply
(
conn
,
"Can't get followers"
)
end
end
defp
bad_request_reply
(
conn
,
error_message
)
do
json
=
error_json
(
conn
,
error_message
)
json_reply
(
conn
,
400
,
json
)
...
...
lib/pleroma/web/twitter_api/views/user_view.ex
View file @
94a394e3
...
...
@@ -4,6 +4,14 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
alias
Pleroma
.
Web
.
TwitterAPI
.
Utils
def
render
(
"show.json"
,
%{
user:
user
=
%
User
{}}
=
assigns
)
do
render_one
(
user
,
Pleroma
.
Web
.
TwitterAPI
.
UserView
,
"user.json"
,
assigns
)
end
def
render
(
"index.json"
,
%{
users:
users
,
for:
user
})
do
render_many
(
users
,
Pleroma
.
Web
.
TwitterAPI
.
UserView
,
"user.json"
,
for:
user
)
end
def
render
(
"user.json"
,
%{
user:
user
=
%
User
{}}
=
assigns
)
do
image
=
User
.
avatar_url
(
user
)
following
=
if
assigns
[
:for
]
do
User
.
following?
(
assigns
[
:for
],
user
)
...
...
test/web/twitter_api/twitter_api_controller_test.exs
View file @
94a394e3
...
...
@@ -419,6 +419,24 @@ test "it returns the user", %{conn: conn} do
end
end
describe
"GET /api/statuses/followers"
do
test
"it returns a user's followers"
,
%{
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
,
user
)
|>
get
(
"/api/statuses/followers"
)
assert
json_response
(
conn
,
200
)
==
UserView
.
render
(
"index.json"
,
%{
users:
[
follower_one
,
follower_two
],
for:
user
})
end
end
defp
valid_user
(
_context
)
do
user
=
insert
(
:user
)
[
user:
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