src/Controller/Api/PdfmenuInstitutionController.php line 46

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Entity\Institution;
  4. use App\Service\SerializeService;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. /**
  12.  * Class PdfmenuInstitutionController
  13.  * @package App\Controller\Api
  14.  * @Route(path="/api/pdfmenu/institution", name="api_pdfmenu_institution")
  15.  */
  16. class PdfmenuInstitutionController extends AbstractController
  17. {
  18.     private EntityManagerInterface $em;
  19.     private SerializeService $serializeService;
  20.     private TranslatorInterface $translator;
  21.     public function __construct(
  22.         EntityManagerInterface $em,
  23.         SerializeService $serializeService,
  24.         TranslatorInterface $translator,
  25.     ) {
  26.         $this->em $em;
  27.         $this->serializeService $serializeService;
  28.         $this->translator $translator;
  29.     }
  30.     /**
  31.      * @param Request $request
  32.      * @return JsonResponse
  33.      * @Route("", name="find")
  34.      */
  35.     public function find(Request $request): JsonResponse
  36.     {
  37.         $data $request->getContent();
  38.         $data json_decode($datatrue);
  39.         /** @var Institution $institution */
  40.         $institution $this->em->getRepository(Institution::class)->findOneBy(['hash' => $data['hash']]);
  41.         if ($institution) {
  42.             if ($institution->isActive() && $institution->getUser()->isActive()) {
  43.                 return new JsonResponse([
  44.                     'success' => true,
  45.                     'institution' => $this->serializeService->serializeInstitution($institution),
  46.                 ]);
  47.             }
  48.         }
  49.         return new JsonResponse([
  50.             'success' => false,
  51.             'message' => $this->translator->trans('institutionHome.notFound'),
  52.         ]);
  53.     }
  54. }