File size: 803 Bytes
8da2481 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | defmodule Plausible.Plugins.API.CustomProps do
@moduledoc """
Plugins API context module for Custom Props.
All high level Custom Props operations should be implemented here.
"""
@spec enable(Plausible.Site.t(), String.t() | [String.t()]) ::
{:ok, [String.t()]} | {:error, :upgrade_required | Ecto.Changeset.t()}
def enable(site, prop_or_props) do
case Plausible.Props.allow(site, prop_or_props) do
{:ok, site} ->
{:ok, site.allowed_event_props}
error ->
error
end
end
@spec disable(Plausible.Site.t(), String.t() | [String.t()]) ::
:ok | {:error, Ecto.Changeset.t()}
def disable(site, prop_or_props) do
case Plausible.Props.disallow(site, prop_or_props) do
{:ok, _site} -> :ok
error -> error
end
end
end
|