forked from AkkomaGang/akkoma
Add pagination for Mutes
This commit is contained in:
parent
33f4f39b1c
commit
6734abcbd4
3 changed files with 54 additions and 8 deletions
|
@ -335,6 +335,7 @@ def mutes_operation do
|
||||||
operationId: "AccountController.mutes",
|
operationId: "AccountController.mutes",
|
||||||
description: "Accounts the user has muted.",
|
description: "Accounts the user has muted.",
|
||||||
security: [%{"oAuth" => ["follow", "read:mutes"]}],
|
security: [%{"oAuth" => ["follow", "read:mutes"]}],
|
||||||
|
parameters: pagination_params(),
|
||||||
responses: %{
|
responses: %{
|
||||||
200 => Operation.response("Accounts", "application/json", array_of_accounts())
|
200 => Operation.response("Accounts", "application/json", array_of_accounts())
|
||||||
}
|
}
|
||||||
|
|
|
@ -442,9 +442,15 @@ def follow_by_uri(%{body_params: %{uri: uri}} = conn, _) do
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc "GET /api/v1/mutes"
|
@doc "GET /api/v1/mutes"
|
||||||
def mutes(%{assigns: %{user: user}} = conn, _) do
|
def mutes(%{assigns: %{user: user}} = conn, params) do
|
||||||
users = User.muted_users(user, _restrict_deactivated = true)
|
users =
|
||||||
render(conn, "index.json", users: users, for: user, as: :user)
|
user
|
||||||
|
|> User.muted_users_relation(_restrict_deactivated = true)
|
||||||
|
|> Pleroma.Pagination.fetch_paginated(Map.put(params, :skip_order, true))
|
||||||
|
|
||||||
|
conn
|
||||||
|
|> add_link_headers(users)
|
||||||
|
|> render("index.json", users: users, for: user, as: :user)
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc "GET /api/v1/blocks"
|
@doc "GET /api/v1/blocks"
|
||||||
|
|
|
@ -1509,14 +1509,53 @@ test "returns an empty list on a bad request", %{conn: conn} do
|
||||||
|
|
||||||
test "getting a list of mutes" do
|
test "getting a list of mutes" do
|
||||||
%{user: user, conn: conn} = oauth_access(["read:mutes"])
|
%{user: user, conn: conn} = oauth_access(["read:mutes"])
|
||||||
other_user = insert(:user)
|
%{id: id1} = other_user1 = insert(:user)
|
||||||
|
%{id: id2} = other_user2 = insert(:user)
|
||||||
|
%{id: id3} = other_user3 = insert(:user)
|
||||||
|
|
||||||
{:ok, _user_relationships} = User.mute(user, other_user)
|
{:ok, _user_relationships} = User.mute(user, other_user1)
|
||||||
|
{:ok, _user_relationships} = User.mute(user, other_user2)
|
||||||
|
{:ok, _user_relationships} = User.mute(user, other_user3)
|
||||||
|
|
||||||
conn = get(conn, "/api/v1/mutes")
|
result =
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> get("/api/v1/mutes")
|
||||||
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
other_user_id = to_string(other_user.id)
|
assert [id1, id2, id3] == Enum.map(result, & &1["id"])
|
||||||
assert [%{"id" => ^other_user_id}] = json_response_and_validate_schema(conn, 200)
|
|
||||||
|
result =
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> get("/api/v1/mutes?limit=1")
|
||||||
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
|
assert [%{"id" => ^id1}] = result
|
||||||
|
|
||||||
|
result =
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> get("/api/v1/mutes?since_id=#{id1}")
|
||||||
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
|
assert [%{"id" => ^id2}, %{"id" => ^id3}] = result
|
||||||
|
|
||||||
|
result =
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> get("/api/v1/mutes?since_id=#{id1}&max_id=#{id3}")
|
||||||
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
|
assert [%{"id" => ^id2}] = result
|
||||||
|
|
||||||
|
result =
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> get("/api/v1/mutes?since_id=#{id1}&limit=1")
|
||||||
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
|
assert [%{"id" => ^id2}] = result
|
||||||
end
|
end
|
||||||
|
|
||||||
test "getting a list of blocks" do
|
test "getting a list of blocks" do
|
||||||
|
|
Loading…
Reference in a new issue