From b54c8917c9a21c64fc7a8664634204be3d450f17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Mon, 3 Aug 2026 17:59:19 +0200 Subject: [PATCH] feat: add logging to contingent api endpoint --- src/Controller/Api/ContingentController.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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); }