src/EventSubscriber/EditRegistersSubscriber.php line 51

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\EditRegisters;
  4. use App\Entity\Registers;
  5. use App\Repository\EditRegistersRepository;
  6. use App\Repository\RegistersRepository;
  7. use App\Repository\ThepropertyRepository;
  8. use App\Service\MailToSend;
  9. use App\Service\TraitementUrl;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  13. class EditRegistersSubscriber implements EventSubscriberInterface
  14. {
  15.     /**
  16.      * @var MailToSend
  17.      */
  18.     private $mailToSend;
  19.     /**
  20.      * @var EditRegisters
  21.      */
  22.     private $editRegistersRepository;
  23.     /**
  24.      * @var Registers
  25.      */
  26.     private $registersRepository;
  27.     private $traitementUrl;
  28.     private $thePropertyRepository;
  29.     public function __construct(
  30.         EditRegistersRepository $editRegistersRepository,
  31.         RegistersRepository $registersRepository,
  32.         ThepropertyRepository $thePropertyRepository,
  33.         MailToSend $mailToSend,
  34.         TraitementUrl $traitementUrl)
  35.     {
  36.         $this->thePropertyRepository $thePropertyRepository;
  37.         $this->traitementUrl $traitementUrl;
  38.         $this->mailToSend $mailToSend;
  39.         $this->editRegistersRepository $editRegistersRepository;
  40.         $this->registersRepository $registersRepository;
  41.     }
  42.     public function onKernelResponse(ResponseEvent $event): void
  43.     {
  44.         $request $event->getRequest();
  45.         $response $event->getResponse();
  46.         $resource $request->attributes->get('_api_resource_class');
  47.         if ($resource === EditRegisters::class && $request->getMethod() === Request::METHOD_POST) {
  48.             $data json_decode($response->getContent(), true);
  49.             $editRegisters $this->editRegistersRepository->find($data['id']);
  50.             $registers $editRegisters->getRegisters();
  51.             $theProperty $registers->getTheProperty();
  52.             $municipality $theProperty->getMunicipality();
  53.             $file[] = $this->traitementUrl->getUrlServer().$editRegisters->getPath();
  54.             $this->mailToSend->sendReportMailToMunicipalityRegister($file$municipality->getEmailMunicipality(), 'mail_for_municipality_registers');
  55.         }
  56.     }
  57.     public static function getSubscribedEvents()
  58.     {
  59.         return [
  60.             'kernel.response' => 'onKernelResponse',
  61.         ];
  62.     }
  63. }