Fix crash when broadcasting events to leaders with unregistered emails

This commit is contained in:
Alex Lion
2026-03-05 18:34:28 +01:00
parent f2fd8e7535
commit 3df8d5c3dd
2 changed files with 11 additions and 6 deletions

View File

@@ -17,6 +17,7 @@
- Fix presentation slides URL (#200)
- Fix custom S3 endpoint (#199)
- Fix quizz real time average score update and id duplication
- Fix crash when broadcasting events to leaders with unregistered emails
### v.2.4.0

View File

@@ -419,8 +419,9 @@ defmodule Claper.Events do
_ -> false
end)
for %{"email" => leader_email} <- deleted_leaders do
leader = Accounts.get_user_by_email(leader_email)
for %{"email" => leader_email} <- deleted_leaders,
leader = Accounts.get_user_by_email(leader_email),
not is_nil(leader) do
broadcast_user_events(leader.id, {:updated, event})
end
@@ -764,8 +765,10 @@ defmodule Claper.Events do
"""
def delete_event(%Event{} = event) do
leaders =
for %{email: email} <- get_activity_leaders_for_event(event.id) do
Accounts.get_user_by_email(email)
for %{email: email} <- get_activity_leaders_for_event(event.id),
leader = Accounts.get_user_by_email(email),
not is_nil(leader) do
leader
end
with {:ok, event} <- Repo.delete(event) do
@@ -896,8 +899,9 @@ defmodule Claper.Events do
event = Repo.preload(event, [:leaders])
broadcast_user_events(event.user_id, message)
for %{email: leader_email} <- event.leaders do
leader = Accounts.get_user_by_email(leader_email)
for %{email: leader_email} <- event.leaders,
leader = Accounts.get_user_by_email(leader_email),
not is_nil(leader) do
broadcast_user_events(leader.id, message)
end
end