From d710d4b28a3465f3376f04a4b38a761ee3701118 Mon Sep 17 00:00:00 2001 From: Romain Lebbadi-Breteau <romain@lebbadi.fr> Date: Sun, 5 Feb 2023 03:48:08 -0500 Subject: [PATCH] Jefferson sucks --- src/Controller/ApiController.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Controller/ApiController.php b/src/Controller/ApiController.php index 555a7cd..5c8312e 100644 --- a/src/Controller/ApiController.php +++ b/src/Controller/ApiController.php @@ -16,19 +16,36 @@ use App\Entity\Transaction; use App\Entity\User; use Doctrine\Persistence\ManagerRegistry; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor; +use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; #[IsGranted('ROLE_USER')] class ApiController extends AbstractController { private Serializer $serializer; + private array $defaultContext; public function __construct() { $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader())); + $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 = [new DateTimeNormalizer([DateTimeNormalizer::FORMAT_KEY => "Y-m-d"]), new ObjectNormalizer($classMetadataFactory)]; + $normalizers = [$dateNormalizer, new ObjectNormalizer($classMetadataFactory, null, null, new ReflectionExtractor())]; $this->serializer = new Serializer($normalizers, $encoders); } -- GitLab