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)
|
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
|
else
|
||||||
Mv.Membership.Member.filter_by_email_match(members, user_email_str)
|
case Ash.read(query, domain: Mv.Membership, actor: actor) do
|
||||||
else
|
{:ok, members} -> apply_email_filter(members, user_email_str)
|
||||||
members
|
{:error, _} -> []
|
||||||
end
|
end
|
||||||
|
|
||||||
{:error, _} ->
|
|
||||||
[]
|
|
||||||
end
|
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
|
# Extract user-friendly error message from Ash.Error
|
||||||
@spec extract_error_message(any()) :: String.t()
|
@spec extract_error_message(any()) :: String.t()
|
||||||
defp extract_error_message(%Ash.Error.Invalid{errors: errors}) when is_list(errors) do
|
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