Files
provider-service/lib/provider_service/queries/provider_queries.ex
HaimKortovich d66a8805d0
All checks were successful
Build and Publish / build-release (push) Successful in 1m30s
dont use S3 directly allow to use any document url (document service agnostic)
2026-04-29 12:18:52 -05:00

37 lines
1005 B
Elixir

defmodule ProviderService.Queries.ProviderQueries do
import Ecto.Query
alias ProviderService.Projections.Provider
alias ProviderService.Repo
def list_providers(params \\ %{}) do
base = from(p in Provider)
Flop.validate_and_run(base, 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