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
6e9a15b1
Commit
6e9a15b1
authored
Dec 28, 2018
by
Ivan Tashkinov
Browse files
[
#483
] Blocked users export for TwitterAPI.
parent
e1de866f
Changes
5
Show whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
6e9a15b1
...
...
@@ -649,6 +649,9 @@ def blocks?(user, %{ap_id: ap_id}) do
end
)
end
def
blocked_users
(
user
),
do
:
Repo
.
all
(
from
(
u
in
User
,
where:
u
.
ap_id
in
^
user
.
info
.
blocks
))
def
block_domain
(
user
,
domain
)
do
info_cng
=
user
.
info
...
...
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
View file @
6e9a15b1
...
...
@@ -704,11 +704,9 @@ def unblock(%{assigns: %{user: blocker}} = conn, %{"id" => id}) do
end
end
# TODO: Use proper query
def
blocks
(%{
assigns:
%{
user:
user
}}
=
conn
,
_
)
do
with
blocked_users
<-
user
.
info
.
blocks
||
[],
accounts
<-
Enum
.
map
(
blocked_users
,
fn
ap_id
->
User
.
get_cached_by_ap_id
(
ap_id
)
end
)
do
res
=
AccountView
.
render
(
"accounts.json"
,
users:
accounts
,
for:
user
,
as:
:user
)
with
blocked_accounts
<-
User
.
blocked_users
(
user
)
do
res
=
AccountView
.
render
(
"accounts.json"
,
users:
blocked_accounts
,
for:
user
,
as:
:user
)
json
(
conn
,
res
)
end
end
...
...
lib/pleroma/web/router.ex
View file @
6e9a15b1
...
...
@@ -281,6 +281,7 @@ defmodule Pleroma.Web.Router do
get
(
"/statuses/followers"
,
TwitterAPI
.
Controller
,
:followers
)
get
(
"/statuses/friends"
,
TwitterAPI
.
Controller
,
:friends
)
get
(
"/statuses/blocks"
,
TwitterAPI
.
Controller
,
:blocks
)
get
(
"/statuses/show/:id"
,
TwitterAPI
.
Controller
,
:fetch_status
)
get
(
"/statusnet/conversation/:id"
,
TwitterAPI
.
Controller
,
:fetch_conversation
)
...
...
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
6e9a15b1
...
...
@@ -507,6 +507,14 @@ def friends(%{assigns: %{user: for_user}} = conn, params) do
end
end
def
blocks
(%{
assigns:
%{
user:
user
}}
=
conn
,
_params
)
do
with
blocked_users
<-
User
.
blocked_users
(
user
)
do
conn
|>
put_view
(
UserView
)
|>
render
(
"index.json"
,
%{
users:
blocked_users
,
for:
user
})
end
end
def
friend_requests
(
conn
,
params
)
do
with
{
:ok
,
user
}
<-
TwitterAPI
.
get_user
(
conn
.
assigns
[
:user
],
params
),
{
:ok
,
friend_requests
}
<-
User
.
get_follow_requests
(
user
)
do
...
...
test/web/twitter_api/twitter_api_controller_test.exs
View file @
6e9a15b1
...
...
@@ -1085,6 +1085,24 @@ test "it returns the followers for a hidden network if requested by the user the
end
end
describe
"GET /api/statuses/blocks"
do
test
"it returns the list of users blocked by requester"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
other_user
=
insert
(
:user
)
{
:ok
,
user
}
=
User
.
block
(
user
,
other_user
)
conn
=
conn
|>
assign
(
:user
,
user
)
|>
get
(
"/api/statuses/blocks"
)
expected
=
UserView
.
render
(
"index.json"
,
%{
users:
[
other_user
],
for:
user
})
result
=
json_response
(
conn
,
200
)
assert
Enum
.
sort
(
expected
)
==
Enum
.
sort
(
result
)
end
end
describe
"GET /api/statuses/friends"
do
test
"it returns the logged in user's friends"
,
%{
conn:
conn
}
do
user
=
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