src/App/Controller/Company/User/Me/PersonController.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Company\User\Me;
  3. use App\Controller\AbstractController;
  4. use App\Entity\User;
  5. use App\Handler\Company\Person\FrequentFlayer\FrequentFlyerFindByPersonId\FrequentFlyerFindByPersonIdCommand;
  6. use App\Handler\Company\Person\FrequentFlayer\FrequentFlyerFindByPersonId\FrequentFlyerFindByPersonIdCommandHandler;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
  11. use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
  12. #[Route(
  13.     path'/me/person',
  14.     methods: ['GET']
  15. )]
  16. class PersonController extends AbstractController
  17. {
  18.     private FrequentFlyerFindByPersonIdCommandHandler $frequentFlyerFindByPersonIdCommandHandler;
  19.     private NormalizerInterface $normalizer;
  20.     public function __construct(
  21.         FrequentFlyerFindByPersonIdCommandHandler $frequentFlyerFindByPersonIdCommandHandler,
  22.         NormalizerInterface $normalizer
  23.     ) {
  24.         $this->frequentFlyerFindByPersonIdCommandHandler $frequentFlyerFindByPersonIdCommandHandler;
  25.         $this->normalizer $normalizer;
  26.     }
  27.     public function __invoke(): JsonResponse
  28.     {
  29.         /** @var User $user */
  30.         $user $this->getUser();
  31.         $person $user->getPerson();
  32.         $personArray $this->normalizer->normalize($personnull, [
  33.             AbstractNormalizer::ATTRIBUTES => [
  34.                 'id',
  35.                 'name',
  36.                 'middleName',
  37.                 'surname',
  38.                 'birthday',
  39.                 'phone',
  40.                 'email',
  41.                 'nationality',
  42.                 'avatar',
  43.             ],
  44.         ]);
  45.         if (null === $personArray) {
  46.             $personArray $this->normalizer->normalize($usernull, [
  47.                 AbstractNormalizer::ATTRIBUTES => [
  48.                     'id',
  49.                     'name',
  50.                     'surname',
  51.                     'tempPassword',
  52.                 ],
  53.             ]);
  54.         }
  55.         $personArray['company'] = $this->normalizer->normalize($user->getCompany(), null, [
  56.             AbstractNormalizer::ATTRIBUTES => [
  57.                 'id',
  58.                 'name',
  59.                 'currency',
  60.                 'isActive',
  61.                 'credit',
  62.                 'creditBalance',
  63.                 'isCreditActive',
  64.             ],
  65.         ]);
  66.         $frequentFlayers = [];
  67.         /*$frequentFlayers = collect($this->frequentFlyerFindByPersonIdCommandHandler
  68.             ->handle(new FrequentFlyerFindByPersonIdCommand($person->getId())))
  69.             ->mapWithKeys(function ($row) {
  70.                 return [$row['airlineCode'] => $row['number']];
  71.             })
  72.             ->toArray();*/
  73.         return $this->jsonResponse(outputarray_merge($personArray, [
  74.             'frequentFlyers' => $frequentFlayers,
  75.         ]));
  76.     }
  77. }