MRF: add describe() for gathering and describing the MRF configuration

This commit is contained in:
Ariadne Conill 2019-08-13 21:26:24 +00:00
parent 943da97d6b
commit 694bc43123

View File

@ -35,4 +35,20 @@ def subdomains_regex(domains) when is_list(domains) do
def subdomain_match?(domains, host) do def subdomain_match?(domains, host) do
Enum.any?(domains, fn domain -> Regex.match?(domain, host) end) Enum.any?(domains, fn domain -> Regex.match?(domain, host) end)
end end
@callback describe() :: {:ok | :error, Map.t()}
def describe(policies) do
policies
|> Enum.reduce({:ok, %{}}, fn
policy, {:ok, data} ->
{:ok, policy_data} = policy.describe()
{:ok, Map.merge(data, policy_data)}
_, error ->
error
end)
end
def describe(), do: get_policies() |> describe()
end end