From 017caf49b00ccb5d621f4da9bebd8b69fa38ff85 Mon Sep 17 00:00:00 2001 From: Daniel Guzman Date: Sat, 8 Jun 2024 23:35:35 +0200 Subject: [PATCH] Get all facilities --- src/Controller/SeasonController.php | 9 ++- .../HandleGetAllFacilities.php | 55 +++++++++++++++++++ 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 src/Service/Season/getAllFacilities/HandleGetAllFacilities.php diff --git a/src/Controller/SeasonController.php b/src/Controller/SeasonController.php index f2934ae1..b96b603b 100644 --- a/src/Controller/SeasonController.php +++ b/src/Controller/SeasonController.php @@ -25,9 +25,14 @@ class SeasonController extends AbstractController return $handleAddTeam($request, $leagueId, $seasonId); } #[Route('/api/league/{leagueId}/season/{seasonId}/facilities/create', name: 'app_create_facilities', methods: ['POST'])] - public function createFacilities(Request $request, HandleCreateFacilities $handleAddTeam, int $leagueId, int $seasonId): JsonResponse + public function createFacilities(Request $request, HandleCreateFacilities $handleCreateFacilities, int $leagueId, int $seasonId): JsonResponse { - return $handleAddTeam($request, $leagueId, $seasonId); + return $handleCreateFacilities($request, $leagueId, $seasonId); + } + #[Route('/api/league/{leagueId}/season/{seasonId}/facilities/', name: 'app_get_all_facilities', methods: ['GET'])] + public function getAllFacilities(Request $request, HandleGetAllFacilities $handleAddTeam, int $leagueId, int $seasonId): JsonResponse + { + return $handleGetAllFacilities($request, $leagueId, $seasonId); } #[Route('/api/league/{leagueId}/season/{seasonId}/calendar', name: 'app_create_calendar', methods: ['POST'])] diff --git a/src/Service/Season/getAllFacilities/HandleGetAllFacilities.php b/src/Service/Season/getAllFacilities/HandleGetAllFacilities.php new file mode 100644 index 00000000..576c7b82 --- /dev/null +++ b/src/Service/Season/getAllFacilities/HandleGetAllFacilities.php @@ -0,0 +1,55 @@ +seasonRepository->find($seasonId); + if (!$seasonEntity instanceof Season) + { + throw new HttpException(Response::HTTP_NOT_FOUND, 'Season not found, check id'); + } + $facilityCollection = $this->facilityRepository->findBy([ + 'season' => $seasonEntity, + 'active' => true + ]); + $facilityArray = []; + if (!is_null($facilityCollection)) + { + foreach ($facilityCollection as $facilityObj) + { + $facilityDto = new FacilityDto(); + $facilityDto->fillFromObject($facilityObj); + $facilityArray[] = $facilityDto->createFacilityArray(); + } + } + return new JsonResponse( + data: [ + 'success' => true, + 'facilities' => $facilityArray + ], + status: Response::HTTP_OK + ); + } +} \ No newline at end of file