1
0
Fork 0
mirror of https://framagit.org/framasoft/mobilizon.git synced 2024-12-27 02:10:27 +00:00
mobilizon/lib/graphql/schema/statistics.ex
Thomas Citharel ee20e03cc2
Migrate to Vue 3 and Vite
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-11 16:46:31 +02:00

45 lines
1.6 KiB
Elixir

defmodule Mobilizon.GraphQL.Schema.StatisticsType do
@moduledoc """
Schema representation for Statistics
"""
use Absinthe.Schema.Notation
alias Mobilizon.GraphQL.Resolvers.Statistics
@desc "A statistics object"
object :statistics do
# Instance name
field(:number_of_users, :integer, description: "The number of local users")
field(:number_of_events, :integer, description: "The total number of events")
field(:number_of_local_events, :integer, description: "The number of local events")
field(:number_of_comments, :integer, description: "The total number of comments")
field(:number_of_local_comments, :integer, description: "The number of local events")
field(:number_of_groups, :integer, description: "The total number of groups")
field(:number_of_local_groups, :integer, description: "The number of local groups")
field(:number_of_instance_followers, :integer,
description: "The number of this instance's followers"
)
field(:number_of_instance_followings, :integer,
description: "The number of instances this instance follows"
)
end
object :category_statistics do
field(:key, :string, description: "The key for the category")
field(:number, :integer, description: "The number of events for the given category")
end
object :statistics_queries do
@desc "Get the instance statistics"
field :statistics, :statistics do
resolve(&Statistics.get_statistics/3)
end
@desc "Get the instance's category statistics"
field :category_statistics, list_of(:category_statistics) do
resolve(&Statistics.get_category_statistics/3)
end
end
end