Bladeren bron

added total

to the instance adminAPI endpoint
youtube-fix
Alexander Strizhakov 3 jaren geleden
bovenliggende
commit
d4158e8bf0
Geen bekende sleutel gevonden voor deze handtekening in de database GPG sleutel-ID: 22896A53AEF1381
5 gewijzigde bestanden met toevoegingen van 44 en 24 verwijderingen
  1. +1
    -0
      CHANGELOG.md
  2. +12
    -1
      docs/development/API/admin_api.md
  3. +11
    -1
      lib/pleroma/web/activity_pub/activity_pub.ex
  4. +4
    -3
      lib/pleroma/web/admin_api/controllers/admin_api_controller.ex
  5. +16
    -19
      test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs

+ 1
- 0
CHANGELOG.md Bestand weergeven

@@ -25,6 +25,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **Breaking:** AdminAPI changed User field `approval_pending` to `is_approved`
- **Breaking**: AdminAPI changed User field `deactivated` to `is_active`
- **Breaking:** AdminAPI `GET /api/pleroma/admin/users/:nickname_or_id/statuses` changed response format and added the number of total users posts.
- **Breaking:** AdminAPI `GET /api/pleroma/admin/instances/:instance/statuses` changed response format and added the number of total users posts.
- Admin API: Reports now ordered by newest

</details>


+ 12
- 1
docs/development/API/admin_api.md Bestand weergeven

@@ -311,7 +311,18 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret
- *optional* `with_reblogs`: `true`/`false` – allows to see reblogs (default is false)
- Response:
- On failure: `Not found`
- On success: JSON array of instance's latest statuses
- On success: JSON, where:
- `total`: total count of the statuses for the instance
- `activities`: list of the statuses for the instance

```json
{
"total" : 1,
"activities": [
// activities list
]
}
```

## `GET /api/pleroma/admin/statuses`



+ 11
- 1
lib/pleroma/web/activity_pub/activity_pub.ex Bestand weergeven

@@ -632,7 +632,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|> fetch_activities(params, pagination_type)
end

def fetch_statuses(reading_user, %{total: true} = params) do
result = fetch_activities_for_reading_user(reading_user, params)
Keyword.put(result, :items, Enum.reverse(result[:items]))
end

def fetch_statuses(reading_user, params) do
reading_user
|> fetch_activities_for_reading_user(params)
|> Enum.reverse()
end

defp fetch_activities_for_reading_user(reading_user, params) do
params = Map.put(params, :type, ["Create", "Announce"])

%{
@@ -641,7 +652,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
}
|> user_activities_recipients()
|> fetch_activities(params, :offset)
|> Enum.reverse()
end

defp user_activities_recipients(%{godmode: true}), do: []


+ 4
- 3
lib/pleroma/web/admin_api/controllers/admin_api_controller.ex Bestand weergeven

@@ -85,17 +85,18 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true
{page, page_size} = page_params(params)

activities =
result =
ActivityPub.fetch_statuses(nil, %{
instance: instance,
limit: page_size,
offset: (page - 1) * page_size,
exclude_reblogs: not with_reblogs
exclude_reblogs: not with_reblogs,
total: true
})

conn
|> put_view(AdminAPI.StatusView)
|> render("index.json", %{activities: activities, as: :activity})
|> render("index.json", %{total: result[:total], activities: result[:items], as: :activity})
end

def list_user_statuses(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname} = params) do


+ 16
- 19
test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs Bestand weergeven

@@ -864,33 +864,30 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
insert_pair(:note_activity, user: user)
activity = insert(:note_activity, user: user2)

ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses")
%{"total" => 2, "activities" => activities} =
conn |> get("/api/pleroma/admin/instances/archae.me/statuses") |> json_response(200)

response = json_response(ret_conn, 200)
assert length(activities) == 2

assert length(response) == 2
%{"total" => 1, "activities" => [_]} =
conn |> get("/api/pleroma/admin/instances/test.com/statuses") |> json_response(200)

ret_conn = get(conn, "/api/pleroma/admin/instances/test.com/statuses")
%{"total" => 0, "activities" => []} =
conn |> get("/api/pleroma/admin/instances/nonexistent.com/statuses") |> json_response(200)

response = json_response(ret_conn, 200)

assert length(response) == 1

ret_conn = get(conn, "/api/pleroma/admin/instances/nonexistent.com/statuses")

response = json_response(ret_conn, 200)
CommonAPI.repeat(activity.id, user)

assert Enum.empty?(response)
%{"total" => 2, "activities" => activities} =
conn |> get("/api/pleroma/admin/instances/archae.me/statuses") |> json_response(200)

CommonAPI.repeat(activity.id, user)
assert length(activities) == 2

ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses")
response = json_response(ret_conn, 200)
assert length(response) == 2
%{"total" => 3, "activities" => activities} =
conn
|> get("/api/pleroma/admin/instances/archae.me/statuses?with_reblogs=true")
|> json_response(200)

ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses?with_reblogs=true")
response = json_response(ret_conn, 200)
assert length(response) == 3
assert length(activities) == 3
end
end



Laden…
Annuleren
Opslaan