Get all facilities
dyb-tech.com/LaLiga-BackEnd/pipeline/head This commit looks good Details

This commit is contained in:
Daniel Guzman 2024-06-08 23:35:35 +02:00
parent 08a43cb760
commit 017caf49b0
2 changed files with 62 additions and 2 deletions

View File

@ -25,9 +25,14 @@ class SeasonController extends AbstractController
return $handleAddTeam($request, $leagueId, $seasonId); return $handleAddTeam($request, $leagueId, $seasonId);
} }
#[Route('/api/league/{leagueId}/season/{seasonId}/facilities/create', name: 'app_create_facilities', methods: ['POST'])] #[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'])] #[Route('/api/league/{leagueId}/season/{seasonId}/calendar', name: 'app_create_calendar', methods: ['POST'])]

View File

@ -0,0 +1,55 @@
<?php
namespace DMD\LaLigaApi\Service\Season\getAllFacilities;
use DMD\LaLigaApi\Dto\FacilityDto;
use DMD\LaLigaApi\Dto\SeasonDto;
use DMD\LaLigaApi\Entity\Season;
use DMD\LaLigaApi\Repository\FacilityRepository;
use DMD\LaLigaApi\Repository\SeasonRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
class HandleGetAllFacilities
{
public const PAGE_SIZE = 10;
public function __construct(
public EntityManagerInterface $entityManager,
public FacilityRepository $facilityRepository,
public SeasonRepository $seasonRepository
){}
public function __invoke(Request $request, int $leagueId, int $seasonId): JsonResponse
{
$seasonEntity = $this->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
);
}
}