getCurrentHousehold(); $currentResidentialAddresses = $this->residentialAddressRepository->findCurrentResidentialAddressByPerson($person); $data = [ 'type' => 'person', 'id' => $person->getId(), 'text' => $this->render->renderString($person, ['addAge' => false]), 'textAge' => $this->render->renderString($person, ['addAge' => true]), 'firstName' => $person->getFirstName(), 'lastName' => $person->getLastName(), 'current_household_address' => $this->normalizer->normalize($person->getCurrentHouseholdAddress(), $format, $context), 'birthdate' => $this->normalizer->normalize($person->getBirthdate(), $format, $context), 'deathdate' => $this->normalizer->normalize($person->getDeathdate(), $format, $context), 'age' => $this->normalizer->normalize($person->getAge(), $format, $context), 'phonenumber' => $this->normalizer->normalize($person->getPhonenumber(), $format, $context), 'mobilenumber' => $this->normalizer->normalize($person->getMobilenumber(), $format, $context), 'email' => $person->getEmail(), 'gender' => $this->normalizer->normalize($person->getGender(), $format, $context), 'civility' => $this->normalizer->normalize($person->getCivility(), $format, $context), 'personId' => $this->personIdRendering->renderPersonId($person), 'identifiers' => $this->normalizer->normalize($person->getIdentifiers(), $format, $context), ]; if (\in_array('minimal', $groups, true) && 1 === \count($groups)) { return $data; } return [...$data, 'centers' => $this->normalizer->normalize($this->centerResolverManager->resolveCenters($person), $format, $context), 'altNames' => $this->normalizeAltNames($person->getAltNames()), 'current_household_id' => $household ? $this->normalizer->normalize($household->getId(), $format, $context) : null, 'current_residential_addresses' => $currentResidentialAddresses ? $this->normalizer->normalize($currentResidentialAddresses, $format, $context) : null]; } public function supportsNormalization($data, $format = null): bool { return $data instanceof Person && 'json' === $format; } /** * @param Collection $altNames * * @return array> */ protected function normalizeAltNames(Collection $altNames): array { return $altNames ->map( static fn (PersonAltName $personAltName): array => [ 'key' => $personAltName->getKey(), 'label' => $personAltName->getLabel(), ] ) ->toArray(); } }