Files
provider-service/lib/provider_service/queries/provider_queries.ex
HaimKortovich f566d04a04
All checks were successful
Build and Publish / build-release (push) Successful in 4m46s
init commit
2026-04-15 15:31:56 -05:00

35 lines
958 B
Elixir

defmodule ProviderService.Queries.ProviderQueries do
alias ProviderService.Projections.Provider
alias ProviderService.Repo
def list_providers(params \\ %{}) do
Flop.validate_and_run(Provider, params, for: Provider)
end
def get_provider(provider_id) do
case Repo.get(Provider, provider_id) do
nil -> {:error, :not_found}
provider -> {:ok, provider}
end
end
def get_active_template(provider_id, policy_type) do
with {:ok, provider} <- get_provider(provider_id) do
default_id = Map.get(provider.default_templates, policy_type)
templates = Map.get(provider.templates, policy_type, [])
result =
if default_id do
Enum.find(templates, &(&1["template_id"] == default_id))
else
Enum.find(templates, &(&1["active"] == true))
end
case result do
nil -> {:error, :no_active_template}
template -> {:ok, template}
end
end
end
end