refactor: email sync changes
This commit is contained in:
parent
2693f67d33
commit
001fca1d16
7 changed files with 108 additions and 121 deletions
|
|
@ -49,8 +49,11 @@ defmodule Mv.Membership.Member do
|
|||
on_missing: :ignore
|
||||
)
|
||||
|
||||
# Override member email with user email when linking
|
||||
change Mv.Membership.Member.Changes.OverrideEmailFromUserOnLink
|
||||
# Sync user email to member when linking (User → Member)
|
||||
# Only runs when user relationship is being changed
|
||||
change Mv.EmailSync.Changes.SyncUserEmailToMember do
|
||||
where [changing(:user)]
|
||||
end
|
||||
end
|
||||
|
||||
update :update_member do
|
||||
|
|
@ -93,10 +96,17 @@ defmodule Mv.Membership.Member do
|
|||
on_missing: :unrelate
|
||||
)
|
||||
|
||||
# Override member email with user email when linking
|
||||
change Mv.Membership.Member.Changes.OverrideEmailFromUserOnLink
|
||||
# Sync email changes to linked user
|
||||
change Mv.Membership.Member.Changes.SyncEmailToUser
|
||||
# Sync member email to user when email changes (Member → User)
|
||||
# Only runs when email is being changed
|
||||
change Mv.EmailSync.Changes.SyncMemberEmailToUser do
|
||||
where [changing(:email)]
|
||||
end
|
||||
|
||||
# Sync user email to member when linking (User → Member)
|
||||
# Only runs when user relationship is being changed
|
||||
change Mv.EmailSync.Changes.SyncUserEmailToMember do
|
||||
where [changing(:user)]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -206,9 +216,8 @@ defmodule Mv.Membership.Member do
|
|||
# User.email is the source of truth - when a link is established, member.email
|
||||
# is overridden to match user.email. Subsequent changes to either email will
|
||||
# sync to the other resource.
|
||||
# See: Mv.Membership.Member.Changes.SyncEmailToUser
|
||||
# Mv.Membership.Member.Changes.OverrideEmailFromUserOnLink
|
||||
# Mv.Accounts.User.Changes.SyncEmailToMember
|
||||
# See: Mv.EmailSync.Changes.SyncUserEmailToMember
|
||||
# Mv.EmailSync.Changes.SyncMemberEmailToUser
|
||||
attribute :email, :string do
|
||||
allow_nil? false
|
||||
constraints min_length: 5, max_length: 254
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue