Vereinfacht accounting software API closes #431 #432

Merged
moritz merged 31 commits from feature/vereinfacht_api into main 2026-02-23 21:18:46 +01:00
Showing only changes of commit 3cdaa75fc1 - Show all commits

View file

@ -1300,20 +1300,24 @@ defmodule Mv.Membership.Member do
end end
end end
# Extracts custom field values from existing member data (update scenario) # Extracts custom field values from existing member data (update scenario).
# Actor must come from context; no system-actor fallback (per guidelines).
# When no actor is present we skip the load and return empty map.
defp extract_existing_values(member_data, changeset) do defp extract_existing_values(member_data, changeset) do
actor = case Map.get(changeset.context, :actor) do
Map.get(changeset.context, :actor) || nil ->
Mv.Helpers.SystemActor.get_system_actor()
opts = Helpers.ash_actor_opts(actor)
case Ash.load(member_data, :custom_field_values, opts) do
{:ok, %{custom_field_values: existing_values}} ->
Enum.reduce(existing_values, %{}, &extract_value_from_cfv/2)
_ ->
%{} %{}
actor ->
opts = Helpers.ash_actor_opts(actor)
case Ash.load(member_data, :custom_field_values, opts) do
{:ok, %{custom_field_values: existing_values}} ->
Enum.reduce(existing_values, %{}, &extract_value_from_cfv/2)
_ ->
%{}
end
end end
end end