Ver Fonte

minor fixes

Olivier Massot há 10 meses atrás
pai
commit
2e8034bfc3

+ 3 - 3
src/Entity/Organization/Organization.php

@@ -282,13 +282,13 @@ class Organization
     #[ORM\OneToMany(mappedBy: 'recipientOrganization', targetEntity: Notification::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
     private Collection $notifications;
 
-    #[ORM\OneToMany(mappedBy: 'author', targetEntity: Email::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Email::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
     private Collection $emails;
 
-    #[ORM\OneToMany(mappedBy: 'author', targetEntity: Mail::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Mail::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
     private Collection $mails;
 
-    #[ORM\OneToMany(mappedBy: 'author', targetEntity: Sms::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Sms::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
     private Collection $sms;
 
     #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Activity::class, cascade: ['persist', 'remove'], orphanRemoval: true)]

+ 34 - 22
src/Message/Handler/OrganizationDeletionHandler.php

@@ -6,52 +6,64 @@ namespace App\Message\Handler;
 
 use App\Message\Message\OrganizationDeletion;
 use App\Service\Organization\OrganizationFactory;
+use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
 use Symfony\Component\Mailer\MailerInterface;
 use Symfony\Component\Messenger\Attribute\AsMessageHandler;
 use Symfony\Component\Mime\Address;
 use Symfony\Component\Mime\Email as SymfonyEmail;
-use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
 
 #[AsMessageHandler(priority: 1)]
-class OrganizationDeletionHandler
+readonly class OrganizationDeletionHandler
 {
     public function __construct(
-        private readonly OrganizationFactory $organizationFactory,
-        private readonly MailerInterface $symfonyMailer,
-        private readonly string $opentalentMailReport,
+        private OrganizationFactory $organizationFactory,
+        private MailerInterface     $symfonyMailer,
+        private string              $opentalentMailReport,
     ) {
     }
 
     /**
      * @throws \Throwable
      * @throws TransportExceptionInterface
-     * @throws \Symfony\Component\Mailer\Exception\TransportExceptionInterface
      */
     public function __invoke(OrganizationDeletion $organizationDeletionCommand): void
     {
         $organizationCreationRequest = $organizationDeletionCommand->getOrganizationDeletionRequest();
-        $mail = ['subject' => '', 'content' => ''];
 
         try {
             $this->organizationFactory->delete($organizationCreationRequest);
 
-            $mail['subject'] = 'Organization deleted';
-            $mail['content'] = 'The organization n° '.$organizationCreationRequest->getOrganizationId().' has been deleted successfully.';
+            $this->sendMail(
+                $organizationCreationRequest->getSendConfirmationEmailAt() ?? $this->opentalentMailReport,
+                'Organization deleted',
+                'The organization n° '.$organizationCreationRequest->getOrganizationId().' has been deleted successfully.',
+            );
         } catch (\Exception $e) {
-            $mail['subject'] = 'Organization deletion : an error occured';
-            $mail['content'] = 'An error occured while deleting the new organization : \n'.$e->getMessage();
+            $this->sendMail(
+                $organizationCreationRequest->getSendConfirmationEmailAt() ?? $this->opentalentMailReport,
+                'Organization deletion : an error occurred',
+                'An error occurred while deleting the new organization : \n'.$e->getMessage()
+            );
             throw $e;
-        } finally {
-            if ($organizationCreationRequest->getSendConfirmationEmailAt() !== null) {
-                $symfonyMail = (new SymfonyEmail())
-                    ->from($this->opentalentMailReport)
-                    ->replyTo($this->opentalentMailReport)
-                    ->returnPath(Address::create($this->opentalentMailReport))
-                    ->to($organizationCreationRequest->getSendConfirmationEmailAt())
-                    ->subject($mail['subject'])
-                    ->text($mail['content']);
-                $this->symfonyMailer->send($symfonyMail);
-            }
         }
     }
+
+    /**
+     * @throws TransportExceptionInterface
+     */
+    private function sendMail(
+        string $to,
+        string $subject,
+        string $content,
+    ): void
+    {
+        $symfonyMail = (new SymfonyEmail())
+            ->from($this->opentalentMailReport)
+            ->replyTo($this->opentalentMailReport)
+            ->returnPath(Address::create($this->opentalentMailReport))
+            ->to($to)
+            ->subject($subject)
+            ->text($content);
+        $this->symfonyMailer->send($symfonyMail);
+    }
 }

+ 1 - 1
src/Service/Typo3/Typo3Service.php

@@ -34,7 +34,7 @@ class Typo3Service
             $parameters
         );
 
-        return $this->typo3_client->request('GET', $url, $headers);
+        return $this->typo3_client->request('GET', $url, ['headers' => $headers]);
     }
 
     /**