refactor: Reduce nesting depth in UserLive.Form.load_members_for_linking
This commit is contained in:
parent
fba0ea5ec0
commit
89fbd55250
1 changed files with 16 additions and 11 deletions
|
|
@ -598,20 +598,25 @@ defmodule MvWeb.UserLive.Form do
|
|||
|
||||
actor = current_actor(socket)
|
||||
|
||||
case Ash.read(query, domain: Mv.Membership, actor: actor) do
|
||||
{:ok, members} ->
|
||||
# Apply email match filter if user_email is provided
|
||||
if user_email_str do
|
||||
Mv.Membership.Member.filter_by_email_match(members, user_email_str)
|
||||
else
|
||||
members
|
||||
end
|
||||
|
||||
{:error, _} ->
|
||||
[]
|
||||
# Early return if no actor (prevents exceptions in unauthenticated tests)
|
||||
if is_nil(actor) do
|
||||
[]
|
||||
else
|
||||
case Ash.read(query, domain: Mv.Membership, actor: actor) do
|
||||
{:ok, members} -> apply_email_filter(members, user_email_str)
|
||||
{:error, _} -> []
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@spec apply_email_filter([Mv.Membership.Member.t()], String.t() | nil) ::
|
||||
[Mv.Membership.Member.t()]
|
||||
defp apply_email_filter(members, nil), do: members
|
||||
|
||||
defp apply_email_filter(members, user_email_str) when is_binary(user_email_str) do
|
||||
Mv.Membership.Member.filter_by_email_match(members, user_email_str)
|
||||
end
|
||||
|
||||
# Extract user-friendly error message from Ash.Error
|
||||
@spec extract_error_message(any()) :: String.t()
|
||||
defp extract_error_message(%Ash.Error.Invalid{errors: errors}) when is_list(errors) do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue