From 858dde41cc6b8055ad7f09c59d49d5efddfd5217 Mon Sep 17 00:00:00 2001 From: Romain Lebbadi-Breteau <romain@lebbadi.fr> Date: Sun, 5 Feb 2023 03:54:45 -0500 Subject: [PATCH] i hid an easter egg in the code. can you find it? --- src/Controller/ApiController.php | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/Controller/ApiController.php b/src/Controller/ApiController.php index 5c8312e..ce521b8 100644 --- a/src/Controller/ApiController.php +++ b/src/Controller/ApiController.php @@ -24,7 +24,6 @@ use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; class ApiController extends AbstractController { private Serializer $serializer; - private array $defaultContext; public function __construct() { @@ -32,18 +31,6 @@ class ApiController extends AbstractController $dateNormalizer = new DateTimeNormalizer([DateTimeNormalizer::FORMAT_KEY => "Y-m-d"]); - $callback = function ($dateTime) { - return $dateTime instanceof string - ? strtotime($dateTime) - : ''; - }; - - $this->defaultContext = [ - AbstractNormalizer::CALLBACKS => [ - 'date' => $callback, - ], - ]; - $encoders = [new JsonEncoder()]; $normalizers = [$dateNormalizer, new ObjectNormalizer($classMetadataFactory, null, null, new ReflectionExtractor())]; @@ -93,6 +80,8 @@ class ApiController extends AbstractController $entityManager->remove($transaction); $entityManager->flush(); + + return new Response(); } #[Route('/api/transaction/{id}', name: 'api_transaction_update', methods: ['PATCH'])] @@ -105,8 +94,14 @@ class ApiController extends AbstractController if (!$user->getTransactions()->contains($transaction)) throw $this->createNotFoundException(); $entityManager = $doctrine->getManager(); - $this->serializer->deserialize($request->getContent(), Transaction::class, "json", ["object_to_populate" => $transaction]); + try { + $transaction = $this->serializer->deserialize($request->getContent(), Transaction::class, "json", [DateTimeNormalizer::FORMAT_KEY => "Y-m-d", "object_to_populate" => $transaction]); + } catch (\Exception $error) { + return new Response($error, 400); + } - $doctrine->getManager()->flush(); + $entityManager->flush(); + + return new Response(); } } -- GitLab