* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ namespace Chill\PersonBundle\Serializer\Normalizer; use Chill\PersonBundle\Entity\AccompanyingPeriodParticipation; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; class AccompanyingPeriodParticipationNormalizer implements NormalizerInterface, NormalizerAwareInterface { protected ?NormalizerInterface $normalizer = null; public function normalize($participation, string $format = null, array $context = array()) { /** @var AccompanyingPeriodParticipation $participation */ return [ 'id' => $participation->getId(), 'startDate' => $this->normalizer->normalize($participation->getStartDate(), $format), 'endDate' => $this->normalizer->normalize($participation->getEndDate(), $format), 'person' => $this->normalizer->normalize($participation->getPerson(), $format) ]; } public function supportsNormalization($data, string $format = null): bool { return false; return $data instanceof AccompanyingPeriodParticipation; } public function setNormalizer(NormalizerInterface $normalizer) { $this->normalizer = $normalizer; } }