<?php
namespace App\Controller\Api;
use App\Entity\Institution;
use App\Service\SerializeService;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Class PdfmenuInstitutionController
* @package App\Controller\Api
* @Route(path="/api/pdfmenu/institution", name="api_pdfmenu_institution")
*/
class PdfmenuInstitutionController extends AbstractController
{
private EntityManagerInterface $em;
private SerializeService $serializeService;
private TranslatorInterface $translator;
public function __construct(
EntityManagerInterface $em,
SerializeService $serializeService,
TranslatorInterface $translator,
) {
$this->em = $em;
$this->serializeService = $serializeService;
$this->translator = $translator;
}
/**
* @param Request $request
* @return JsonResponse
* @Route("", name="find")
*/
public function find(Request $request): JsonResponse
{
$data = $request->getContent();
$data = json_decode($data, true);
/** @var Institution $institution */
$institution = $this->em->getRepository(Institution::class)->findOneBy(['hash' => $data['hash']]);
if ($institution) {
if ($institution->isActive() && $institution->getUser()->isActive()) {
return new JsonResponse([
'success' => true,
'institution' => $this->serializeService->serializeInstitution($institution),
]);
}
}
return new JsonResponse([
'success' => false,
'message' => $this->translator->trans('institutionHome.notFound'),
]);
}
}