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 a94c0c0b14 - Show all commits

View file

@ -17,13 +17,20 @@ defmodule Mv.Vereinfacht.Changes.SyncLinkedMemberAfterUserChange do
@impl true @impl true
def change(changeset, _opts, _context) do def change(changeset, _opts, _context) do
if Mv.Config.vereinfacht_configured?() do if Mv.Config.vereinfacht_configured?() and relevant_change?(changeset) do
Ash.Changeset.after_transaction(changeset, &sync_linked_member_after_transaction/2) Ash.Changeset.after_transaction(changeset, &sync_linked_member_after_transaction/2)
else else
changeset changeset
end end
end end
# Only sync when something that affects the linked member's data actually changed
# (email sync or member link), to avoid unnecessary API calls on every user update.
defp relevant_change?(changeset) do
Ash.Changeset.changing_attribute?(changeset, :email) or
Ash.Changeset.changing_relationship?(changeset, :member)
end
defp sync_linked_member_after_transaction(_changeset, {:ok, user}) do defp sync_linked_member_after_transaction(_changeset, {:ok, user}) do
case load_linked_member(user) do case load_linked_member(user) do
nil -> nil ->