analytics / lib /plausible /plugins /api /capabilities.ex
Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
8da2481 verified
Raw
History Blame Contribute Delete
948 Bytes
defmodule Plausible.Plugins.API.Capabilities do
@moduledoc """
Context module for querying API capabilities
"""
require Plausible.Billing.Feature
alias Plausible.Billing.Feature
@spec get(Plug.Conn.t()) :: {:ok, map()}
def get(conn) do
conn = PlausibleWeb.Plugs.AuthorizePluginsAPI.call(conn, send_error?: false)
site = conn.assigns[:authorized_site]
features =
if site do
site = Plausible.Repo.preload(site, :team)
allowed_features = Plausible.Teams.Billing.allowed_features_for(site.team)
Feature.list()
|> Enum.map(fn mod ->
feature = mod |> Module.split() |> List.last()
{feature, mod in allowed_features}
end)
else
Enum.map(Feature.list_short_names(), &{&1, false})
end
{:ok,
%{
authorized: not is_nil(site),
data_domain: site && site.domain,
features: Enum.into(features, %{})
}}
end
end