diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/counter_cache.ex | 6 | ||||
| -rw-r--r-- | lib/pleroma/stats.ex | 15 | ||||
| -rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 7 | 
3 files changed, 14 insertions, 14 deletions
| diff --git a/lib/pleroma/counter_cache.ex b/lib/pleroma/counter_cache.ex index b469e7b50..a940b5e50 100644 --- a/lib/pleroma/counter_cache.ex +++ b/lib/pleroma/counter_cache.ex @@ -40,7 +40,7 @@ defmodule Pleroma.CounterCache do      end    end -  def get_as_map() do +  def get_sum() do      CounterCache      |> select([c], %{        "public" => sum(c.public), @@ -49,6 +49,10 @@ defmodule Pleroma.CounterCache do        "direct" => sum(c.direct)      })      |> Repo.one() +    |> Enum.map(fn {visibility, dec_count} -> +      {visibility, Decimal.to_integer(dec_count)} +    end) +    |> Enum.into(%{})    end    def set(instance, values) do diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex index 4e355bd5c..9a03f01db 100644 --- a/lib/pleroma/stats.ex +++ b/lib/pleroma/stats.ex @@ -97,14 +97,11 @@ defmodule Pleroma.Stats do      }    end -  def get_status_visibility_count do -    counter_cache = CounterCache.get_as_map() - -    %{ -      public: counter_cache["status_visibility_public"] || 0, -      unlisted: counter_cache["status_visibility_unlisted"] || 0, -      private: counter_cache["status_visibility_private"] || 0, -      direct: counter_cache["status_visibility_direct"] || 0 -    } +  def get_status_visibility_count(instance \\ nil) do +    if is_nil(instance) do +      CounterCache.get_sum() +    else +      CounterCache.get_by_instance(instance) +    end    end  end diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 9f1fd3aeb..4db9f4cac 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -1122,11 +1122,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do      end    end -  def stats(conn, _) do -    count = Stats.get_status_visibility_count() +  def stats(conn, params) do +    counters = Stats.get_status_visibility_count(params["instance"]) -    conn -    |> json(%{"status_visibility" => count}) +    json(conn, %{"status_visibility" => counters})    end    defp errors(conn, {:error, :not_found}) do | 
