Left join leader in get_managed_event!/2 (#194)

This commit is contained in:
Raúl R Pearson
2025-12-06 10:32:41 +00:00
committed by GitHub
parent 5cf4759f05
commit c8d87196ba
2 changed files with 9 additions and 3 deletions

View File

@@ -259,11 +259,11 @@ defmodule Claper.Events do
"""
def get_managed_event!(user, uuid, preload \\ []) do
from(
a in ActivityLeader,
join: e in Event,
on: e.id == a.event_id,
e in Event,
join: u in Accounts.User,
on: e.user_id == u.id,
left_join: a in ActivityLeader,
on: e.id == a.event_id,
where: e.uuid == ^uuid and (u.id == ^user.id or a.email == ^user.email),
select: e
)

View File

@@ -226,6 +226,12 @@ defmodule Claper.EventsTest do
end
end
test "get_managed_event!/3 works for the owner of an event with no leaders",
context do
event = Enum.at(context.alice_active_events, 0)
assert Events.get_managed_event!(context.alice, event.uuid) == event
end
test "get_user_event!/3 gets event by owner, raises if not", context do
event = Enum.at(context.alice_active_events, 0)
assert Events.get_user_event!(context.alice.id, event.uuid) == event