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