Skip to content

Commit a7e6d14

Browse files
committed
feat: Add cleanup maintenance command
1 parent 61234a2 commit a7e6d14

4 files changed

Lines changed: 33 additions & 25 deletions

File tree

src/ProcessManagerBundle/Command/CleanupProcessDataCommand.php

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,8 @@
2525

2626
class CleanupProcessDataCommand extends AbstractCommand
2727
{
28-
private CleanupService $cleanupService;
29-
private string $logDirectory;
30-
31-
public function __construct(CleanupService $cleanupService, string $logDirectory) {
28+
public function __construct(private CleanupService $cleanupService, private string $logDirectory) {
3229
parent::__construct();
33-
$this->cleanupService = $cleanupService;
34-
$this->logDirectory = $logDirectory;
3530
}
3631

3732
protected function configure(): void
@@ -75,14 +70,14 @@ public function execute(InputInterface $input, OutputInterface $output): int
7570
}
7671

7772
// start deleting database entries older than x seconds
78-
$this->output->writeln('start cleaning database entries older than ' . $seconds . ' seconds');
73+
$output->writeln('start cleaning database entries older than ' . $seconds . ' seconds');
7974
$this->cleanupService->cleanupDbEntries($seconds);
80-
$this->output->writeln('finish cleaning database entries older than ' . $seconds . ' seconds');
75+
$output->writeln('finish cleaning database entries older than ' . $seconds . ' seconds');
8176

8277
// start deleting log files older than x seconds
83-
$this->output->writeln('start cleaning log files older than ' . $seconds . ' seconds');
78+
$output->writeln('start cleaning log files older than ' . $seconds . ' seconds');
8479
$this->cleanupService->cleanupLogFiles($this->logDirectory, $seconds, $keepLogs);
85-
$this->output->writeln('finish cleaning logfile entries older than ' . $seconds . ' seconds');
80+
$output->writeln('finish cleaning logfile entries older than ' . $seconds . ' seconds');
8681
return Command::SUCCESS;
8782
}
8883
}

src/ProcessManagerBundle/Controller/ProcessController.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,16 @@
1414

1515
namespace ProcessManagerBundle\Controller;
1616

17+
use CoreShop\Bundle\ResourceBundle\Controller\EventDispatcherInterface;
1718
use CoreShop\Bundle\ResourceBundle\Controller\ResourceController;
19+
use CoreShop\Bundle\ResourceBundle\Controller\ResourceFormFactoryInterface;
20+
use CoreShop\Bundle\ResourceBundle\Controller\ViewHandler;
21+
use CoreShop\Bundle\ResourceBundle\Form\Helper\ErrorSerializer;
22+
use CoreShop\Component\Resource\Factory\FactoryInterface;
23+
use CoreShop\Component\Resource\Metadata\MetadataInterface;
24+
use CoreShop\Component\Resource\Repository\RepositoryInterface;
25+
use Doctrine\Persistence\ObjectManager;
26+
use Pimcore\Db;
1827
use ProcessManagerBundle\Model\Process;
1928
use ProcessManagerBundle\Model\ProcessInterface;
2029
use ProcessManagerBundle\Service\CleanupService;
@@ -34,6 +43,17 @@ public function listAction(Request $request): JsonResponse
3443
* @var Process\Listing $list
3544
*/
3645
$list = new $listingClass();
46+
if ($filterString = $request->get('filter')) {
47+
$db = Db::get();
48+
$filters = json_decode($filterString);
49+
$conditionParts = [];
50+
foreach ($filters as $f) {
51+
$fieldname = $f->property;
52+
$conditionParts[] = $db->quoteIdentifier($fieldname) . ' LIKE ' . $db->quote('%' . $f->value . '%');
53+
}
54+
$condition = implode(' AND ', $conditionParts);
55+
$list->setCondition($condition);
56+
}
3757
if ($sort = $request->get('sort')) {
3858
$sort = json_decode($sort)[0];
3959
$list->setOrderKey($sort->property);
@@ -113,7 +133,7 @@ public function clearAction(Request $request): JsonResponse
113133
$keepLogs = $this->container->getParameter('process_manager.keep_logs');
114134

115135
/** @var CleanupService $cleanupService */
116-
$cleanupService = $this->get('process_manager.cleanup_service');
136+
$cleanupService = $this->container->get('process_manager.cleanup_service');
117137
$cleanupService->cleanupDbEntries($seconds);
118138
$cleanupService->cleanupLogFiles($logDirectory, $seconds, $keepLogs);
119139
return $this->json(['success' => true]);

src/ProcessManagerBundle/Maintenance/CleanupTask.php

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,14 @@
1616

1717
use Pimcore\Maintenance\TaskInterface;
1818
use ProcessManagerBundle\Service\CleanupService;
19-
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
2019

2120
class CleanupTask implements TaskInterface
2221
{
23-
private CleanupService $cleanupService;
24-
private ParameterBagInterface $parameterBag;
25-
26-
public function __construct(CleanupService $cleanupService, ParameterBagInterface $parameterBag) {
27-
$this->cleanupService = $cleanupService;
28-
$this->parameterBag = $parameterBag;
22+
public function __construct(private CleanupService $cleanupService, private string $logDirectory, private int $seconds, private bool $keepLogs) {
2923
}
3024
public function execute(): void
3125
{
32-
$seconds = $this->parameterBag->get('process_manager.seconds');
33-
$logDirectory = $this->parameterBag->get('process_manager.log_directory');
34-
$keepLogs = $this->parameterBag->get('process_manager.keep_logs');
35-
$this->cleanupService->cleanupDbEntries($seconds);
36-
$this->cleanupService->cleanupLogFiles($logDirectory, $seconds, $keepLogs);
26+
$this->cleanupService->cleanupDbEntries($this->seconds);
27+
$this->cleanupService->cleanupLogFiles($this->logDirectory, $this->seconds, $this->keepLogs);
3728
}
3829
}

src/ProcessManagerBundle/Resources/config/services.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ services:
5555

5656
ProcessManagerBundle\Maintenance\CleanupTask:
5757
arguments:
58-
- '@process_manager.cleanup_service'
59-
- '@parameter_bag'
58+
- '@ProcessManagerBundle\Service\CleanupService'
59+
- '%process_manager.log_directory%'
60+
- '%process_manager.seconds%'
61+
- '%process_manager.keep_logs%'
6062
tags:
6163
- { name: pimcore.maintenance.task, type: process_manager.maintenance.cleanup }
6264

0 commit comments

Comments
 (0)