Browse Source

[#502] Fixed `user_count` in `/api/v1/instance` to include only active local users.

tags/v0.9.9
Ivan Tashkinov 5 years ago
parent
commit
954dc4a4ad
3 changed files with 15 additions and 5 deletions
  1. +1
    -1
      lib/pleroma/stats.ex
  2. +9
    -2
      lib/pleroma/user.ex
  3. +5
    -2
      test/web/mastodon_api/mastodon_api_controller_test.exs

+ 1
- 1
lib/pleroma/stats.ex View File

@@ -46,7 +46,7 @@ defmodule Pleroma.Stats do
from(u in User.local_user_query(), select: fragment("sum((?->>'note_count')::int)", u.info))

status_count = Repo.one(status_query)
user_count = Repo.aggregate(User.local_user_query(), :count, :id)
user_count = Repo.aggregate(User.active_local_user_query(), :count, :id)

Agent.update(__MODULE__, fn _ ->
{peers, %{domain_count: domain_count, status_count: status_count, user_count: user_count}}


+ 9
- 2
lib/pleroma/user.ex View File

@@ -796,7 +796,7 @@ defmodule Pleroma.User do
update_and_set_cache(cng)
end

def local_user_query() do
def local_user_query do
from(
u in User,
where: u.local == true,
@@ -804,7 +804,14 @@ defmodule Pleroma.User do
)
end

def moderator_user_query() do
def active_local_user_query do
from(
u in local_user_query(),
where: fragment("?->'deactivated' @> 'false'", u.info)
)
end

def moderator_user_query do
from(
u in User,
where: u.local == true,


+ 5
- 2
test/web/mastodon_api/mastodon_api_controller_test.exs View File

@@ -1473,8 +1473,11 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
end

test "get instance information", %{conn: conn} do
insert(:user, %{local: true})
user = insert(:user, %{local: true})

user2 = insert(:user, %{local: true})
{:ok, _user2} = User.deactivate(user2, !user2.info.deactivated)

insert(:user, %{local: false, nickname: "u@peer1.com"})
insert(:user, %{local: false, nickname: "u@peer2.com"})

@@ -1489,7 +1492,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
stats = result["stats"]

assert stats
assert stats["user_count"] == 2
assert stats["user_count"] == 1
assert stats["status_count"] == 1
assert stats["domain_count"] == 2
end


Loading…
Cancel
Save