1212use HiEvents \Repository \Eloquent \Value \OrderAndDirection ;
1313use HiEvents \Repository \Eloquent \Value \Relationship ;
1414use HiEvents \Repository \Interfaces \EventRepositoryInterface ;
15+ use HiEvents \Repository \Interfaces \OrganizerRepositoryInterface ;
1516use HiEvents \Services \Application \Handlers \Event \DTO \GetPublicOrganizerEventsDTO ;
1617use Illuminate \Pagination \LengthAwarePaginator ;
1718
1819class GetPublicEventsHandler
1920{
2021 public function __construct (
21- private readonly EventRepositoryInterface $ eventRepository ,
22+ private readonly EventRepositoryInterface $ eventRepository ,
23+ private readonly OrganizerRepositoryInterface $ organizerRepository ,
2224 )
2325 {
2426 }
2527
2628 public function handle (GetPublicOrganizerEventsDTO $ dto ): LengthAwarePaginator
2729 {
30+ $ organizer = $ this ->organizerRepository ->findById ($ dto ->organizerId );
31+
2832 $ query = $ this ->eventRepository
2933 ->loadRelation (
3034 new Relationship (ProductCategoryDomainObject::class, [
@@ -42,7 +46,8 @@ public function handle(GetPublicOrganizerEventsDTO $dto): LengthAwarePaginator
4246 ->loadRelation (new Relationship (EventSettingDomainObject::class))
4347 ->loadRelation (new Relationship (ImageDomainObject::class));
4448
45- if ($ dto ->authenticatedAccountId ) {
49+ // If the organizer is viewing their own profile, we show all events, even those in draft
50+ if ($ dto ->authenticatedAccountId && $ organizer ->getAccountId () === $ dto ->authenticatedAccountId ) {
4651 return $ query ->findEventsForOrganizer (
4752 organizerId: $ dto ->organizerId ,
4853 accountId: $ dto ->authenticatedAccountId ,
0 commit comments