src/Controller/Cronjobs/DeleteOldDataExports.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Cronjobs;
  3. use App\Controller\Response;
  4. use App\Entity\UserDataExportRequest;
  5. use App\Services\Export\ExportUserData;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. class DeleteOldDataExports extends AbstractController {
  10.     use Response;
  11.     private int $USER_EXPORT_EXPIRE_DAYS;
  12.     public function __construct(int $USER_EXPORT_EXPIRE_DAYS) {
  13.         $this->USER_EXPORT_EXPIRE_DAYS $USER_EXPORT_EXPIRE_DAYS;
  14.     }
  15.     #[Route("/cronjobs/delete_old_user_data_export"name"cronjobs_delete_old_user_data_export")]
  16.     public function deleteOldDataExports(
  17.         ExportUserData          $exportUserData,
  18.         EntityManagerInterface  $em,
  19.     ) {
  20.         $listOfZipNames $em
  21.             ->getRepository(UserDataExportRequest::class)
  22.         ->deleteExpiredAndFetchZipNames($this->USER_EXPORT_EXPIRE_DAYS);
  23.         foreach ($listOfZipNames as $zipName) {
  24.             unlink($exportUserData->archiveSavePath($zipName));
  25.     }
  26.         return $this->jsonResponse(["response" => "Deleted ".count($listOfZipNames)." exports."]);
  27.     }
  28. }