feat: email reminder about pending feedbacks for hotel managers
This commit is contained in:
@@ -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];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user