From 80c81c11fbb388878060104f345794fce3748c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Tue, 16 Dec 2025 12:16:49 +0100 Subject: [PATCH] feat: log pickups planning data api calls --- src/Controller/Api/PickupController.php | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Controller/Api/PickupController.php b/src/Controller/Api/PickupController.php index 508bce8..98c4bd9 100644 --- a/src/Controller/Api/PickupController.php +++ b/src/Controller/Api/PickupController.php @@ -6,6 +6,7 @@ use App\BusProNet\DataProcessor\PickupPlanningTransformer; use App\BusProNet\XmlLoader\PickupLoader; use League\Flysystem\FilesystemException; use League\Flysystem\FilesystemOperator; +use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -23,6 +24,7 @@ class PickupController extends AbstractController private readonly PickupLoader $xmlLoader, private readonly PickupPlanningTransformer $planningTransformer, private readonly FilesystemOperator $jsonExport, + private readonly LoggerInterface $logger, ) { } @@ -67,7 +69,12 @@ class PickupController extends AbstractController { try { $payload = $request->toArray(); - } catch (\JsonException) { + } catch (\JsonException $e) { + $this->logger->error('Failed to update pickups planning data', [ + 'message' => $e->getMessage(), + 'payload' => (string) $request->getContent(), + ]); + return $this->json(['error' => 'Invalid JSON payload'], Response::HTTP_BAD_REQUEST); } @@ -75,10 +82,19 @@ class PickupController extends AbstractController try { $this->jsonExport->write(self::PLANNING_FILE, json_encode($transformed, \JSON_THROW_ON_ERROR)); - } catch (FilesystemException|\JsonException) { - return $this->json(['error' => 'Failed to write planning data'], Response::HTTP_INTERNAL_SERVER_ERROR); + } catch (FilesystemException|\JsonException $e) { + $this->logger->error('Failed to update pickups planning data', [ + 'message' => $e->getMessage(), + 'data' => $transformed, + ]); + + return $this->json(['error' => 'Failed to write pickups planning data'], Response::HTTP_INTERNAL_SERVER_ERROR); } + $this->logger->info('Successfully updated pickups planning data', [ + 'data' => $transformed, + ]); + return $this->json(['status' => 'ok']); } }