| 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 | |