From c8c5af8d14a1373b60a44ff53d5116442416b89d Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Tue, 4 Jan 2022 15:17:50 +0100 Subject: [PATCH] cs: Update `PersonJsonNormalizer`. --- .../Normalizer/PersonJsonNormalizer.php | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php index 66d41b3f2..d1a9143dc 100644 --- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php +++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php @@ -19,7 +19,7 @@ use Chill\PersonBundle\Entity\PersonAltName; use Chill\PersonBundle\Repository\PersonRepository; use DateTime; use DateTimeImmutable; -use LogicException; +use Doctrine\Common\Collections\Collection; use Symfony\Component\Serializer\Exception\UnexpectedValueException; use Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface; use Symfony\Component\Serializer\Normalizer\DenormalizerAwareTrait; @@ -79,13 +79,24 @@ class PersonJsonNormalizer implements $person = new Person(); } - foreach (['firstName', 'lastName', 'phonenumber', 'mobilenumber', 'gender', - 'birthdate', 'deathdate', 'center', 'altNames', ] - as $item) { - if (!array_key_exists($item, $data)) { - continue; - } + $fields = [ + 'firstName', + 'lastName', + 'phonenumber', + 'mobilenumber', + 'gender', + 'birthdate', + 'deathdate', + 'center', + 'altNames', + ]; + $fields = array_filter( + $fields, + static fn (string $field): bool => array_key_exists($field, $data) + ); + + foreach ($fields as $item) { switch ($item) { case 'firstName': $person->setFirstName($data[$item]); @@ -149,9 +160,6 @@ class PersonJsonNormalizer implements } break; - - default: - throw new LogicException("item not defined: {$item}"); } } @@ -194,14 +202,19 @@ class PersonJsonNormalizer implements return $data instanceof Person && 'json' === $format; } - protected function normalizeAltNames($altNames): array + /** + * @param Collection $altNames + * + * @return array> + */ + protected function normalizeAltNames(Collection $altNames): array { - $r = []; - - foreach ($altNames as $n) { - $r[] = ['key' => $n->getKey(), 'label' => $n->getLabel()]; - } - - return $r; + return $altNames + ->map( + static function (PersonAltName $personAltName): array { + return ['key' => $personAltName->getKey(), 'label' => $personAltName->getLabel()]; + } + ) + ->toArray(); } }