diff --git a/src/Controller/Api/ContingentController.php b/src/Controller/Api/ContingentController.php index 4bc8bb8..4d5fe8b 100644 --- a/src/Controller/Api/ContingentController.php +++ b/src/Controller/Api/ContingentController.php @@ -14,6 +14,7 @@ use App\Repository\Groups\AccommodationPriceRepository; use App\Repository\Groups\AccommodationRepository; use App\Service\PriceTimelineBuilder; use Psr\Cache\InvalidArgumentException; +use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; @@ -33,6 +34,7 @@ class ContingentController extends AbstractController private readonly AccommodationPriceRepository $priceRepository, private readonly CacheInterface $cache, private readonly PriceTimelineBuilder $priceTimelineBuilder, + private readonly LoggerInterface $logger, ) { } @@ -44,7 +46,9 @@ class ContingentController extends AbstractController $accommodation = $this->accommodationRepository->findOneBy(['calendarCode' => $query->hotelCode]); if (null === $accommodation) { - return $this->json(['error' => 'hotel not found for hotelCode.'], Response::HTTP_BAD_REQUEST); + $this->logger->error('Hotel not found for hotelcode '.$query->hotelCode); + + return $this->json(['error' => 'Hotel not found for hotelCode.'], Response::HTTP_BAD_REQUEST); } $yearStart = new \DateTimeImmutable("{$query->year}-01-01"); @@ -68,7 +72,9 @@ class ContingentController extends AbstractController $accommodation = $this->accommodationRepository->findOneBy(['calendarCode' => $query->hotelCode]); if (null === $accommodation) { - return $this->json(['error' => 'hotel not found for hotelCode.'], Response::HTTP_BAD_REQUEST); + $this->logger->error('Hotel not found for hotelcode '.$query->hotelCode); + + return $this->json(['error' => 'Hotel not found for hotelCode.'], Response::HTTP_BAD_REQUEST); } try { @@ -79,6 +85,10 @@ class ContingentController extends AbstractController return $this->contingentsClient->getContingentCalendar($query->hotelCode, $query->dateFrom, $query->dateTo); }); } catch (BpnConnectException|InvalidArgumentException $e) { + $this->logger->error('Failed to fetch contingent data', [ + 'error' => $e->getMessage(), + ]); + return $this->json(['error' => 'Failed to fetch contingent data.'], Response::HTTP_BAD_GATEWAY); }