src/Service/OrganizationService.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\Animal;
  4. use App\Entity\Event;
  5. use App\Entity\EventData;
  6. use App\Entity\Organization;
  7. use App\Entity\Producer;
  8. use App\Entity\Treatment;
  9. use App\Entity\User;
  10. use App\Entity\UserType;
  11. use App\Service\Common\Tools;
  12. use Doctrine\ORM\EntityManagerInterface;
  13. use Psr\Container\ContainerInterface;
  14. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\Security\Core\Security;
  17. use Symfony\Contracts\Translation\TranslatorInterface/* */
  18. class OrganizationService
  19. {
  20.     use Tools;
  21.         private \App\Repository\OrganizationRepository|\Doctrine\ORM\EntityRepository $organizationRepository;
  22.         private \App\Repository\EventDataRepository|\Doctrine\ORM\EntityRepository $eventDataRepository;
  23.         private \App\Repository\AnimalRepository|\Doctrine\ORM\EntityRepository $animalRepository;
  24.         private \App\Repository\UserRepository|\Doctrine\ORM\EntityRepository $userRepository;
  25.         private \App\Repository\TreatmentRepository|\Doctrine\ORM\EntityRepository $treatmentRepository;
  26.         private TokenStorageInterface $tokenStorage;
  27.         private Security $security;
  28.         private TranslatorInterface $translator;
  29.         private ContainerInterface $container;
  30.         private EntityManagerInterface $em;
  31.     public function __construct(
  32.         ContainerInterface $container,
  33.         EntityManagerInterface $em,
  34.         TokenStorageInterface $tokenStorage,
  35.         Security $security,
  36.         TranslatorInterface $translator
  37.     ) {
  38.         $this->container $container;
  39.         $this->em $em;
  40.         $this->organizationRepository $this->em->getRepository(Organization::class);
  41.         $this->eventDataRepository $this->em->getRepository(EventData::class);
  42.         $this->animalRepository $this->em->getRepository(Animal::class);
  43.         $this->userRepository $this->em->getRepository(User::class);
  44.         $this->treatmentRepository $this->em->getRepository(Treatment::class);
  45.         $this->tokenStorage $tokenStorage;
  46.         $this->security $security;
  47.         $this->translator $translator/* */
  48.     }
  49.     public function getListCsvRequest $request )
  50.     {/*{{{*/
  51.         $_ $this->translator/* */
  52.         $repository $this->organizationRepository;
  53.         /* DEBUG: sin no tiene la organizacion muestra todo, ojo */
  54.         $organizationId $this->security->getUser()->getOrganization()?->getId();
  55.         $qb $repository->getListQuery$organizationId );
  56.         $qb $repository->filterBuilder$request$qb );
  57.         return $this->getCsv$request$repository$qb );
  58.     }/*}}}*/
  59.     /* de logica ligera */
  60.     public function create(Organization $organization) {
  61.         $this->em->persist($organization);
  62.         $this->em->flush();
  63.         return $organization;
  64.     }
  65.     public function findAll()
  66.     {
  67.         return $this->organizationRepository->findAll();
  68.     }
  69.     public function findBy($criteria$order null$limit null$offset null)
  70.     {
  71.         return $this->organizationRepository->findBy($criteria$order$limit$offset);
  72.     }
  73.     /**
  74.      * @param $criteria
  75.      * @return object|null
  76.      */
  77.     public function findOneBy($criteria)
  78.     {
  79.         return $this->organizationRepository->findOneBy($criteria);
  80.     }
  81.     public function findOrganizationsByUser()
  82.     {
  83.         # Organizations List
  84.         $user $this->tokenStorage->getToken()->getUser();
  85.         $organizations $this->organizationRepository->findOrganizationsByUser($user);
  86.         return $organizations;
  87.     }
  88.     /* migrado de OrganizationSeeker.php */
  89. }