<?php
namespace App\Controller\Cronjobs;
use App\Controller\Response;
use App\Entity\UserDataExportRequest;
use App\Services\Export\ExportUserData;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class DeleteOldDataExports extends AbstractController {
use Response;
private int $USER_EXPORT_EXPIRE_DAYS;
public function __construct(int $USER_EXPORT_EXPIRE_DAYS) {
$this->USER_EXPORT_EXPIRE_DAYS = $USER_EXPORT_EXPIRE_DAYS;
}
#[Route("/cronjobs/delete_old_user_data_export", name: "cronjobs_delete_old_user_data_export")]
public function deleteOldDataExports(
ExportUserData $exportUserData,
EntityManagerInterface $em,
) {
$listOfZipNames = $em
->getRepository(UserDataExportRequest::class)
->deleteExpiredAndFetchZipNames($this->USER_EXPORT_EXPIRE_DAYS);
foreach ($listOfZipNames as $zipName) {
unlink($exportUserData->archiveSavePath($zipName));
}
return $this->jsonResponse(["response" => "Deleted ".count($listOfZipNames)." exports."]);
}
}