src/Http/Controller/Api/V2/User/DoesUserExistAction.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Http\Controller\Api\V2\User;
  3. use App\Database\Domain\Entity\User\NotRegisteredEmail;
  4. use App\Database\Domain\Repository\NotRegisteredEmailRepository;
  5. use App\Database\Domain\Repository\UserRepository;
  6. use App\Infrastructure\Util\Identifier;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. /**
  12.  * @Route("/api/v2/does-user-exist", methods={"GET"})
  13.  */
  14. class DoesUserExistAction extends AbstractController
  15. {
  16.     public function __invoke(
  17.         UserRepository $userRepository,
  18.         Request $request,
  19.         EntityManagerInterface $em,
  20.         NotRegisteredEmailRepository $notRegisteredEmailRepository
  21.     ) {
  22.     // TODO fix unneeded queries --> move to single method
  23.         $user $userRepository->findByEmail($request->query->get('email''123'));
  24.         if (null === $user) {
  25.             $notRegistered $notRegisteredEmailRepository->findOneBy(['email' => $request->query->get('email')]);
  26.             if (null === $notRegistered) {
  27.                 $notRegistered = new NotRegisteredEmail(Identifier::generate(), $request->query->get('email'));
  28.                 $em->persist($notRegistered);
  29.                 $em->flush();
  30.             }
  31.         }
  32.         return $user $this->json(['exist' => true]) : $this->json(['exist' => false]);
  33.     }
  34. }