feat: email reminder about pending feedbacks for hotel managers

This commit is contained in:
Björn Fromme
2023-12-07 16:20:09 +01:00
parent aee17c63b9
commit ab066c4656
8 changed files with 292 additions and 152 deletions
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App\Service\Cron;
use Doctrine\DBAL\Exception;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Log\LoggerInterface;
class FlushLogsService
{
public function __construct(
private readonly EntityManagerInterface $entityManager,
private readonly LoggerInterface $logger
) {
}
public function flush(): array
{
// Deletes all log entries older than 30 days
$dueDate = (new \DateTimeImmutable())->modify('-30 days');
try {
$result = $this
->entityManager
->getConnection()
->executeQuery('DELETE FROM log WHERE log.timestamp < ?', [$dueDate->format('Y-m-d H:i:s')]);
$message = 'Deleted '.$result->rowCount().' log entries';
$success = true;
$this->logger->info($message);
} catch (Exception $e) {
$message = 'Unable to delete log entries: '.$e->getMessage();
$success = false;
$this->logger->error($message);
}
return [$success, $message];
}
}