浏览代码

post MR fixes

Olivier Massot 1 年之前
父节点
当前提交
52ede419c3
共有 2 个文件被更改,包括 24 次插入18 次删除
  1. 20 0
      src/Repository/Core/FileRepository.php
  2. 4 18
      src/Service/File/FileManager.php

+ 20 - 0
src/Repository/Core/FileRepository.php

@@ -14,4 +14,24 @@ class FileRepository extends ServiceEntityRepository
     {
         parent::__construct($registry, File::class);
     }
+
+    public function deleteByOrganization(int $organizationId): void
+    {
+        $this->createQueryBuilder('f')
+            ->delete()
+            ->where('f.organization = :organizationId')
+            ->setParameter('organizationId', $organizationId)
+            ->getQuery()
+            ->execute();
+    }
+
+    public function deleteByPerson(int $personId): void
+    {
+        $this->createQueryBuilder('f')
+            ->delete()
+            ->where('f.person = :personId')
+            ->setParameter('personId', $personId)
+            ->getQuery()
+            ->execute();
+    }
 }

+ 4 - 18
src/Service/File/FileManager.php

@@ -13,6 +13,7 @@ use App\Entity\Organization\Organization;
 use App\Entity\Person\Person;
 use App\Enum\Core\FileTypeEnum;
 use App\Enum\Core\FileVisibilityEnum;
+use App\Repository\Core\FileRepository;
 use App\Service\File\Exception\FileNotFoundException;
 use App\Service\File\Factory\ImageFactory;
 use App\Service\File\Storage\FileStorageInterface;
@@ -32,6 +33,7 @@ class FileManager
         protected readonly ImageFactory $imageFactory,
         protected readonly LocalStorage $localStorage,
         protected readonly EntityManagerInterface $entityManager,
+        protected readonly FileRepository $fileRepository,
     ) {
     }
 
@@ -153,15 +155,7 @@ class FileManager
             $storageService->deleteOrganizationFiles($organizationId);
         }
 
-        $qb = $this->entityManager->createQueryBuilder();
-        $qb
-            ->delete(File::class, 'f')
-            ->where(
-                $qb->expr()->eq('f.organization', ':organizationId')
-            )
-            ->setParameter('organizationId', $organizationId)
-            ->getQuery()
-            ->execute();
+        $this->fileRepository->deleteByOrganization($organizationId);
     }
 
     /**
@@ -177,14 +171,6 @@ class FileManager
             $storageService->deletePersonFiles($personId);
         }
 
-        $qb = $this->entityManager->createQueryBuilder();
-        $qb
-            ->delete(File::class, 'f')
-            ->where(
-                $qb->expr()->eq('f.person', ':$personId')
-            )
-            ->setParameter('$personId', $personId)
-            ->getQuery()
-            ->execute();
+        $this->fileRepository->deleteByPerson($personId);
     }
 }