File tree Expand file tree Collapse file tree 6 files changed +126
-0
lines changed
Services/Application/Handlers Expand file tree Collapse file tree 6 files changed +126
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace HiEvents \Http \Actions \Events ;
4+
5+ use HiEvents \Http \Actions \BaseAction ;
6+ use HiEvents \Resources \Event \EventResourcePublic ;
7+ use HiEvents \Services \Application \Handlers \Event \DTO \GetPublicOrganizerEventsDTO ;
8+ use HiEvents \Services \Application \Handlers \Event \GetPublicEventsHandler ;
9+ use Illuminate \Http \JsonResponse ;
10+ use Illuminate \Http \Request ;
11+
12+ class GetOrganizerEventsPublicAction extends BaseAction
13+ {
14+ public function __construct (
15+ private readonly GetPublicEventsHandler $ handler ,
16+ )
17+ {
18+ }
19+
20+ public function __invoke (int $ organizerId , Request $ request ): JsonResponse
21+ {
22+ $ events = $ this ->handler ->handle (new GetPublicOrganizerEventsDTO (
23+ organizerId: $ organizerId ,
24+ queryParams: $ this ->getPaginationQueryParams ($ request ),
25+ ));
26+
27+ return $ this ->resourceResponse (
28+ resource: EventResourcePublic::class,
29+ data: $ events ,
30+ );
31+ }
32+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace HiEvents \Http \Actions \Organizers ;
4+
5+ use HiEvents \Http \Actions \BaseAction ;
6+ use HiEvents \Resources \Organizer \OrganizerResourcePublic ;
7+ use HiEvents \Services \Application \Handlers \Organizer \GetPublicOrganizerHandler ;
8+ use Illuminate \Http \JsonResponse ;
9+
10+ class GetPublicOrganizerAction extends BaseAction
11+ {
12+ public function __construct (
13+ private readonly GetPublicOrganizerHandler $ handler ,
14+ )
15+ {
16+ }
17+
18+ public function __invoke (int $ organizerId ): JsonResponse
19+ {
20+ return $ this ->resourceResponse (
21+ resource: OrganizerResourcePublic::class,
22+ data: $ this ->handler ->handle ($ organizerId ),
23+ );
24+ }
25+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace HiEvents \Services \Application \Handlers \Event \DTO ;
4+
5+ use HiEvents \DataTransferObjects \BaseDTO ;
6+ use HiEvents \Http \DTO \QueryParamsDTO ;
7+
8+ class GetPublicOrganizerEventsDTO extends BaseDTO
9+ {
10+ public function __construct (
11+ public int $ organizerId ,
12+ public QueryParamsDTO $ queryParams ,
13+ )
14+ {
15+ }
16+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace HiEvents \Services \Application \Handlers \Event ;
4+
5+ use HiEvents \DomainObjects \Status \EventStatus ;
6+ use HiEvents \Repository \Interfaces \EventRepositoryInterface ;
7+ use HiEvents \Services \Application \Handlers \Event \DTO \GetPublicOrganizerEventsDTO ;
8+ use Illuminate \Pagination \LengthAwarePaginator ;
9+
10+ class GetPublicEventsHandler
11+ {
12+ public function __construct (
13+ private readonly EventRepositoryInterface $ eventRepository ,
14+ )
15+ {
16+ }
17+
18+ public function handle (GetPublicOrganizerEventsDTO $ dto ): LengthAwarePaginator
19+ {
20+ return $ this ->eventRepository ->findEvents (
21+ where: [
22+ 'organizer_id ' => $ dto ->organizerId ,
23+ 'status ' => EventStatus::LIVE ->name ,
24+ ],
25+ params: $ dto ->queryParams
26+ );
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace HiEvents \Services \Application \Handlers \Organizer ;
4+
5+ use HiEvents \Repository \Interfaces \OrganizerRepositoryInterface ;
6+
7+ class GetPublicOrganizerHandler
8+ {
9+ public function __construct (
10+ private readonly OrganizerRepositoryInterface $ organizerRepository
11+ )
12+ {
13+ }
14+
15+ public function handle (int $ organizerId )
16+ {
17+ return $ this ->organizerRepository ->findById ($ organizerId );
18+ }
19+ }
Original file line number Diff line number Diff line change 4141use HiEvents \Http \Actions \Events \GetEventAction ;
4242use HiEvents \Http \Actions \Events \GetEventPublicAction ;
4343use HiEvents \Http \Actions \Events \GetEventsAction ;
44+ use HiEvents \Http \Actions \Events \GetOrganizerEventsPublicAction ;
4445use HiEvents \Http \Actions \Events \Images \CreateEventImageAction ;
4546use HiEvents \Http \Actions \Events \Images \DeleteEventImageAction ;
4647use HiEvents \Http \Actions \Events \Images \GetEventImagesAction ;
7576use HiEvents \Http \Actions \Organizers \GetOrganizerAction ;
7677use HiEvents \Http \Actions \Organizers \GetOrganizerEventsAction ;
7778use HiEvents \Http \Actions \Organizers \GetOrganizersAction ;
79+ use HiEvents \Http \Actions \Organizers \GetPublicOrganizerAction ;
7880use HiEvents \Http \Actions \ProductCategories \CreateProductCategoryAction ;
7981use HiEvents \Http \Actions \ProductCategories \DeleteProductCategoryAction ;
8082use HiEvents \Http \Actions \ProductCategories \EditProductCategoryAction ;
@@ -267,6 +269,10 @@ function (Router $router): void {
267269 // Events
268270 $ router ->get ('/events/{event_id} ' , GetEventPublicAction::class);
269271
272+ // Organizers
273+ $ router ->get ('/organizers/{organizer_id} ' , GetPublicOrganizerAction::class);
274+ $ router ->get ('/organizers/{organizer_id}/events ' , GetOrganizerEventsPublicAction::class);
275+
270276 // Products
271277 $ router ->get ('/events/{event_id}/products ' , GetEventPublicAction::class);
272278
You can’t perform that action at this time.
0 commit comments