Load logs

[MAILPOET-3135]
This commit is contained in:
Pavel Dohnal
2021-03-02 11:51:42 +01:00
committed by Veljko V
parent 174583cc84
commit c3372dfee8
4 changed files with 40 additions and 4 deletions

View File

@@ -3,17 +3,29 @@
namespace MailPoet\AdminPages\Pages; namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer; use MailPoet\AdminPages\PageRenderer;
use MailPoet\Logging\LogRepository;
use MailPoetVendor\Carbon\Carbon;
class Logs { class Logs {
/** @var PageRenderer */ /** @var PageRenderer */
private $pageRenderer; private $pageRenderer;
public function __construct(PageRenderer $pageRenderer) { /** @var LogRepository */
private $logRepository;
public function __construct(
LogRepository $logRepository,
PageRenderer $pageRenderer
) {
$this->pageRenderer = $pageRenderer; $this->pageRenderer = $pageRenderer;
$this->logRepository = $logRepository;
} }
public function render() { public function render() {
$dateFrom = (new Carbon())->subDays(7);
$dateTo = new Carbon();
$logs = $this->logRepository->getLogs($dateFrom, $dateTo);
$this->pageRenderer->displayPage('logs.html', []); $this->pageRenderer->displayPage('logs.html', []);
} }
} }

View File

@@ -213,6 +213,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Listing\PageLimit::class)->setPublic(true); $container->autowire(\MailPoet\Listing\PageLimit::class)->setPublic(true);
// Logging // Logging
$container->autowire(\MailPoet\Logging\LoggerFactory::class); $container->autowire(\MailPoet\Logging\LoggerFactory::class);
$container->autowire(\MailPoet\Logging\LogRepository::class);
// Notices // Notices
$container->autowire(\MailPoet\Util\Notices\PermanentNotices::class); $container->autowire(\MailPoet\Util\Notices\PermanentNotices::class);
//Referrals //Referrals

View File

@@ -8,7 +8,7 @@ use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity() * @ORM\Entity()
* @ORM\Table(name="logs") * @ORM\Table(name="log")
*/ */
class LogEntity { class LogEntity {
use AutoincrementedIdTrait; use AutoincrementedIdTrait;
@@ -21,7 +21,7 @@ class LogEntity {
private $name; private $name;
/** /**
* @ORM\Column(type="int", nullable=true) * @ORM\Column(type="integer", nullable=true)
* @var int|null * @var int|null
*/ */
private $level; private $level;

View File

@@ -12,4 +12,27 @@ class LogRepository extends Repository {
protected function getEntityClassName() { protected function getEntityClassName() {
return LogEntity::class; return LogEntity::class;
} }
/**
* @param \DateTimeInterface|null $dateFrom
* @param \DateTimeInterface|null $dateTo
* @return LogEntity[]
*/
public function getLogs(\DateTimeInterface $dateFrom = null, \DateTimeInterface $dateTo = null): array {
$query = $this->doctrineRepository->createQueryBuilder('l')
->select('l');
if ($dateFrom instanceof \DateTimeInterface) {
$query
->where('l.createdAt > :dateFrom')
->setParameter('dateFrom', $dateFrom->format('Y-m-d H:i:s'));
}
if ($dateTo instanceof \DateTimeInterface) {
$query
->andWhere('l.createdAt < :dateTo')
->setParameter('dateTo', $dateTo->format('Y-m-d H:i:s'));
}
return $query->getQuery()->getResult();
}
} }