MastodonAPI: Add proper user count.

This commit is contained in:
Lain Iwakura 2017-11-30 14:59:44 +01:00
parent 9d1c0ec18d
commit 5637d163e6
3 changed files with 22 additions and 1 deletions

View File

@ -329,4 +329,9 @@ def blocks?(user, %{ap_id: ap_id}) do
Enum.member?(blocks, ap_id) Enum.member?(blocks, ap_id)
end end
def local_user_query() do
from u in User,
where: u.local == true
end
end end

View File

@ -93,6 +93,7 @@ def user(conn, %{"id" => id}) do
@instance Application.get_env(:pleroma, :instance) @instance Application.get_env(:pleroma, :instance)
def masto_instance(conn, _params) do def masto_instance(conn, _params) do
user_count = Repo.aggregate(User.local_user_query, :count, :id)
response = %{ response = %{
uri: Web.base_url, uri: Web.base_url,
title: Keyword.get(@instance, :name), title: Keyword.get(@instance, :name),
@ -103,8 +104,8 @@ def masto_instance(conn, _params) do
streaming_api: String.replace(Web.base_url, ["http","https"], "wss") streaming_api: String.replace(Web.base_url, ["http","https"], "wss")
}, },
stats: %{ stats: %{
user_count: 1,
status_count: 2, status_count: 2,
user_count: user_count,
domain_count: 3 domain_count: 3
}, },
max_toot_chars: Keyword.get(@instance, :limit) max_toot_chars: Keyword.get(@instance, :limit)

View File

@ -573,4 +573,19 @@ test "updates the user's banner" do
assert user["header"] != "https://placehold.it/700x335" assert user["header"] != "https://placehold.it/700x335"
end end
end end
test "get instance information" do
insert(:user, %{local: true})
user = insert(:user, %{local: true})
insert(:user, %{local: false})
{:ok, _} = TwitterAPI.create_status(user, %{"status" => "cofe"})
conn = conn
|> get("/api/v1/instance")
assert result = json_response(conn, 200)
assert result["stats"]["user_count"] == 2
end
end end