refactor: Reduce nesting depth in UserLive.Form.load_members_for_linking
This commit is contained in:
parent
a6fd5e1c1e
commit
f18980e800
1 changed files with 16 additions and 11 deletions
|
|
@ -598,18 +598,23 @@ defmodule MvWeb.UserLive.Form do
|
||||||
|
|
||||||
actor = current_actor(socket)
|
actor = current_actor(socket)
|
||||||
|
|
||||||
case Ash.read(query, domain: Mv.Membership, actor: actor) do
|
# Early return if no actor (prevents exceptions in unauthenticated tests)
|
||||||
{:ok, members} ->
|
if is_nil(actor) do
|
||||||
# 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
|
else
|
||||||
members
|
case Ash.read(query, domain: Mv.Membership, actor: actor) do
|
||||||
|
{:ok, members} -> apply_email_filter(members, user_email_str)
|
||||||
|
{:error, _} -> []
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
{:error, _} ->
|
@spec apply_email_filter([Mv.Membership.Member.t()], String.t() | nil) ::
|
||||||
[]
|
[Mv.Membership.Member.t()]
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
# Extract user-friendly error message from Ash.Error
|
# Extract user-friendly error message from Ash.Error
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue