diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2020-05-09 11:30:37 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2020-05-09 11:30:37 +0300 |
commit | cbe383ae832f13d5d2a20ee8fb5e85498205fbc3 (patch) | |
tree | f61d822df39cf74652508fb343a06662c44e660b /lib | |
parent | 39d2f2118aed7906cb352d8a37f22da73f3a3aa3 (diff) | |
download | pleroma-cbe383ae832f13d5d2a20ee8fb5e85498205fbc3.tar.gz |
Update stats admin endpoint
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 |